默认的目录模块化结构Zend框架应用程序
-
06-07-2019 - |
题
我意识到默认的目录结构Zend框架的模块式应用程序的手册。
/application
/controllers
/modules
/admin
/controllers
/views
/views
/configs
/www
index.php
但我想知道我为什么要做这种方式。它完美的应用,已默认的模块 /应用程序 与其他模块 /application/modules/:moduleName.这更是一个讨论问题比 帮助我 问题。
有哪些优点和缺点具有目录的结构是这样的:
/application
/modules
/admin
/controllers
/views
/default
/controllers
/views
/configs
/www
index.php
从我的角度来看,唯一的缺点是,它不这样写在default/在手册。我看不到任何其他。我失去了一些东西?
甚至更多-我认为,这种结构应该是默认结构的任何新的苏的应用程序。我不知道为什么Zend开发者不会使用它。
解决方案
实际上,您建议的目录结构非常适合大型和复杂的应用程序。
Magento是当今世界上最好的开源电子商务解决方案,已经在Zend框架中编码,并使用类似的目录布局,这样就很容易扩展和添加新模块并管理旧模块。
对于简单的应用程序和学习Zend,我建议大家坚持使用默认的目录结构。
其他提示
我想这样是因为:
- 有一种默认结构,这是使用时,没有模块中的应用(即,只有一个默认的模块--这意味着不需要一种"默认"目录)
- 而且,那么,可以添加模块;而不必修改现有的结构。
它是一个解释不如任何其他的,我想。
仍然,如果开发一个应用程序,这将包含若干模块,并且知道这个从一开始,我可能会去的那种结构你的建议,并且不默认的一个^^
事情会更清楚的那样,在我看--我看不到任何问题!
(事实上,我已经这样一次,相当一段时间前,并没有遇到任何麻烦-但这不是一个"完整的"应用程序;更一个原型...)
实际上,这是 http://详细说明的选项之一framework.zend.com/manual/en/zend.controller.modular.html
你的方式听起来不错,ZF的重点是你可以自己选择如何管理。一个优点是代码略少。在Zend的默认方法中,您需要使用它:
$front = Zend_Controller_Front::getInstance();
$front->addControllerDirectory('/path/to/application/controllers', 'default');
$front->addModuleDirectory('/path/to/application/modules');
在您描述的方法中:
$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory('/path/to/application/modules');
只需要你。
Zend方法的一个优点是,如果您不需要模块,则无需运行addModuleDirectory()方法。使用您的方法,总是需要运行,可能会产生很小的开销。
此页面 http://framework.zend.com/manual /en/project-structure.project.html 声明具有默认控制器目录“在应用程序目录中提供了启动简单项目的最佳布局,以及启动具有全局控制器/模型/视图的模块化项目"
我想Zend的观点是,这适用于只有默认模块的简单站点和带有多个模块的更复杂的站点。解决模块/目录中的其他模块并不困难。但在一天结束时,这是个人偏好。
我对同样的问题感到困惑。但是我没有成功地正确设置它...... 为什么我要使用它是因为模块化结构与Zen_Application相结合,实例化了一个Module_Bootstrapper,它自动注册/ application / module / name / forms(以及控制器,视图,模型等)中的命名空间。
我遇到的唯一问题是摆脱'默认'模块:S
您可以在此处找到关于Zend论坛的主题: http:/ /forums.zend.com/viewtopic.php?f=69&t=2394&start=0
希望它会得到回答,我会把它发布在这里。
您可以在此处找到所需的架构: http://www.osebboy.com /博客/ Zend的框架模块/