区分图书馆? (目录结构)

时间:2011-08-24 22:12:45

标签: php oop web-applications directory-structure

因此,这是我目前正在处理的Web应用程序上的目录结构的快速摘录:

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

你认为InvoiceHandler在这个系列中有点奇怪吗?我确定。

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

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

常规和常识在分离这两个明确且明显不同的类别时有什么作用?

3 个答案:

答案 0 :(得分:0)

您可以使用以下结构:

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

答案 1 :(得分:0)

这个问题有点模糊,显示的示例文件名并没有真正解释它们。但是,我会说你需要将你的课程组合成一个有意义的结构。

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

我使用的课程与你的课程截然不同(至少我认为是这些课程),但你可以清楚地看到它们被归为一种逻辑结构。

答案 2 :(得分:0)

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

IE中。 :

/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)