例如:我有一个会话类,一个消息类,一个CRUD类,我把它们放在哪个文件夹中?
我的文件夹结构是:
app/ <-- MVC logic
config/ <-- config files
core/ <-- core files of aplication, such as init
public/ <-- index and assets
vendor/ <-- for composer packages
答案 0 :(得分:0)
什么是“核心”和“初始化”?你是否了解过像MVI一样的MVC或其他什么东西?
“crud classes”(实际应该是data mappers)是模型层的一部分,同样适用于domain objects,存储库,服务和其他cod,严格用于实现域业务逻辑。
.. emm ...“会话类”应该在供应商中进行,因为已经有许多会话抽象实现可用。我不知道应该是什么“消息类”,但如果你的意思是“请求”和“响应”,那么那些也应该进入供应商。我建议为这些功能安装Symfony的HttpFoundation独立组件。
答案 1 :(得分:0)
我建议将Standard PHP package skeleton作为一个良好的根级目录结构。
config/ # Configuration files
docs/ # Documentation and examples
public/ # Web server files (and front controller)
resources/ # Other resource files (assets, locales, migrations)
src/ # PHP source code (The App namespace)
tests/ # Test code
扩展版本:
vendor/ # Reserved for composer (don't touch this folder)
tmp/ # Temporary files
tmp/cache/ # Cache files
tmp/logs/ # Log files
MVC目录结构(示例):
templates/ # Templates (HTML, Twig files)
src/Controller/ # Controllers and actions
src/Repository/ # Repositories (Communication with the database)
src/Table/ # The Table Gateway (Represents a table)
src/Entity/ # Entities (Represents a table row)
src/Service/ # Business logic
src/Utility/ # Helper classes
我认为您的Session类是HTTP会话库,Message类是验证类(或库)。因此,应通过composer
将其安装到vendor/
文件夹中。
它认为你的&#34; CRUD&#34; class是某种&#34; Data Table Pattern&#34;或DAO或Repository,可以是外部库vendor/
和特定于应用程序的代码src/
的组合。