2011-08-24 53 views
1

所以,这里的目录结构在Web应用程序的快速提取物,我目前的工作:区分库? (目录结构)

/app 
    /libraries 
    User_Input.php 
    Database.php 
    InvoiceHandler.php 

你觉得InvoiceHandler有点奇怪此集合中?我当然可以。

直到最近,我忽略了区分实际上是我的应用程序和其他服务(如持久存储)之间的中间层的事实上的库和我自己编写的代码类包含我的应用程序的自定义逻辑(如本例中的Invoice_Handler)。

但随着我的应用程序的增长,这会造成越来越多的混乱。到目前为止,我还没有看到有关这方面的任何好例子,我没有足够的经验可以自行得出结论:

约定和常识对分离这两个明确的和明显不同的分类有什么影响?类的?

回答

0

我最终根据它们包含的抽象级别来分离我的库。为了寻找一个更好的高级抽象名称,我使用了类别名称services作为这些抽象类别,并使用libraries作为低级抽象类别。

即, :

/common 
    /libraries (low-level) 
     database.php 
     session.php 
     email.php 
    /services (high-level) 
     auth.php (dependent on database + session) 
     invoicing.php (dependent on database + email) 
0

你可以用以下结构:

libs 
    Common(Core) 
     Db 
      Connection(Database).php 
    Input 
     Validator 
     Filter 
    Handler(Controller) 
     Invoice.php 
    Model 
+0

嗨!也许我不清楚。该应用程序已经是基于MVC的,所以我的示例中的Invoice_Handler不是一个控制器,而是一个实际负责不同Invoice相关操作并因此依赖于Database和Email类的库,例如。我如何区分这三者以确保较少混淆? – Industrial

0

这个问题有点模糊,所示的例子中的文件名没有真正解释对他们多。然而,我会说你需要将你的课堂分组到一个有意义的结构中。

/app 
    /library 
    /My 
     /Controller 
     AbstractController.php 
     /Filter 
     CamelCaseToUnderscore.php 
     UnderscoreToCamelCase.php 
     /Validator 
     Date.php 
     Url.php 

我使用的类有很大的不同(至少我认为他们是)从你的,但你可以清楚地看到它们被组合成一个逻辑结构。