组织一个PHP项目
|
这是什么
到目前为止,这是我所做的:
核心/
控制器/(包含应用程序使用的控制器)
models /(包含应用程序使用的模型)
views /(包含应用程序使用的视图)
base_controller.php(控制器每隔一个扩展)
base_model.php(模型彼此扩展)
供应商/
phprouter /(一个简单的路由器类)
pimple /(简单的DI容器类)
configuration.php(包含所有应用程序配置)
index.php(包括配置,供应商,基本模型,基本控制器,设置DI容器并路由请求)
在此处查看代码:http://pastebin.com/pxUpUvv6
请注意,给定的代码只是一个示例,因此控制器,模型,视图尚未安装到位。另外,它可能是越野车(未经测试),但现在并不重要。
请求流程
客户端请求index.php。
包括配置,供应商,基本控制器,基本模型。
DI容器和依赖项已初始化,我们现在可以将它们注入到任何地方。
我们将控制器映射到URL,路由器完成其工作。
提取了控制器(尽管如上所述,它不在示例代码中)。
我们做一些事情。
然后,该方法调用
::call_model()
,其中包括core / models /中的相应模型,然后从对应的模型类中调用我们正在使用的相同方法。
已获取模型。
更多东西。
然后,模型调用::call_view()
\',其中包括core / views /中的相应视图。
将获取视图,并将页面呈现给客户端。
仅供参考:对应
对应的控制器,模型,视图的示例:
控制器Controller_Products::list()
位于core / controllers / Controller_Products.php
Model_Products::list()
模型作为core / models / Model_Products.php
查看在core / views / Model_Products_list.php
面临的问题
实际上,我对这种结构感到不舒服。邓诺(Dunno),它似乎远非可扩展,可调节...
仅基本文件夹结构(根目录为core{, /controllers, /models/, /views}
,vendors
)对您来说看起来不错吗?
我觉得我应该在index.php之外获得ѭ6,对我来说似乎有点太大了。如果是这样,那么DI容器又如何呢?
也许如果我需要两个以上的外部库,最好不要手动一个接一个地添加它们?但是如何?
在我看来,将所有配置都放在一个文件configuration.php中,就像老式的PHP4。多亏了Pimple的强大功能,我可以将此配置直接嵌入其中,但是在哪里呢?
我认为我处理::call_model()
(core / base_controller.php)和::call_view()
(core / base_model.php)的方式有点尴尬。你同意吗?重做整个事情的简化方法是什么?
考虑到我所有的问题,将框架用作Symfony最终对我来说会更好吗?
如果不清楚,请随时提出。
谢谢。
没有找到相关结果
已邀请:
1 个回复
吐兄