Php 区分图书馆?(目录结构)
下面是我目前正在开发的web应用程序上目录结构的快速摘录:Php 区分图书馆?(目录结构),php,oop,web-applications,directory-structure,Php,Oop,Web Applications,Directory Structure,下面是我目前正在开发的web应用程序上目录结构的快速摘录: /app /libraries User_Input.php Database.php InvoiceHandler.php 您认为在这个集合中,InvoiceHandler有点奇怪吗?我当然喜欢 直到最近,我还忽略了区分实际上是我的应用程序和其他服务(如持久存储)中间层的事实库和我自己编写的包含应用程序自定义逻辑的代码类(如本例中的Invoice_处理程序)的需要 但随着我的应用程序的增长,这会造成越来越
/app
/libraries
User_Input.php
Database.php
InvoiceHandler.php
您认为在这个集合中,InvoiceHandler
有点奇怪吗?我当然喜欢
直到最近,我还忽略了区分实际上是我的应用程序和其他服务(如持久存储)中间层的事实库和我自己编写的包含应用程序自定义逻辑的代码类(如本例中的Invoice_处理程序)的需要
但随着我的应用程序的增长,这会造成越来越多的混乱。到今天为止,我还没有看到任何关于这方面的好例子,我也没有足够的经验自己得出结论:
关于这两个明确且明显不同的类的分离,惯例和常识有什么说法?您可以使用以下结构:
libs
Common(Core)
Db
Connection(Database).php
Input
Validator
Filter
Handler(Controller)
Invoice.php
Model
这个问题有点模糊,所示的示例文件名并没有对它们进行太多解释。然而,我要说的是,你需要把你的类组合成一个有意义的结构
/app
/library
/My
/Controller
AbstractController.php
/Filter
CamelCaseToUnderscore.php
UnderscoreToCamelCase.php
/Validator
Date.php
Url.php
我使用的类与您的类大不相同(至少我认为是这样),但您可以清楚地看到它们被分组到一个逻辑结构中。我最终根据它们所包含的抽象级别来分离我的库。为了寻找高级抽象的更好名称,我对这些类使用了类别名称
services
,对低级抽象类使用了libraries
即:
你好也许我不清楚。该应用程序已经基于MVC,因此在我的示例中,
Invoice\u Handler
不是控制器,而是一个库,它实际上负责不同的发票相关操作,因此依赖于数据库
&电子邮件
类。我如何将这三者分开,以确保减少混淆?
/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)