Zend framework Zend Framework HMVC体系结构帮助?
我正在寻找一些帮助来正确设置我的应用程序的自动加载程序、引导程序等,以实现类似于以下应用程序文件结构的功能:Zend framework Zend Framework HMVC体系结构帮助?,zend-framework,Zend Framework,我正在寻找一些帮助来正确设置我的应用程序的自动加载程序、引导程序等,以实现类似于以下应用程序文件结构的功能: /application /configs application.ini /controllers /models /User.php // Model_User /modules /blog /admin /controllers
/application
/configs
application.ini
/controllers
/models
/User.php // Model_User
/modules
/blog
/admin
/controllers
/IndexController.php
/models
/User.php // Model_User
/views
/blocks
/menu.phtml
/helpers
/CoolMenu.php
/layouts
/layout.phtml
/scripts
/index
/index.phtml
/list.phtml
/themes
/some-custom-theme
/helpers
/layouts
/layout.phtml
/scripts
/index
/index.phtml
/list.phtml
/users
/index.phtml
/list.phtml
/list.ajax.phtml
/views
/blocks
/layouts
/scripts
/themes
/some-custom-theme
/blocks
/layouts
/scripts
/helpers
/Bootstrap.php
/library
/Zend
/MyCompany
/Model
/Api
/Abstract.php
/public
/css
/js
/images
/themes
/some-custom-theme
/css
/js
/images
当然,这里的想法是,基本的“应用程序”结构可以由模块覆盖,视图也可以由主题在任意级别覆盖
我的一些问题是,在尽可能坚持Zend框架概念和“理想”、尽可能保持简单和优雅、尽可能使用“主流”ZF方法的同时,您将如何处理以下情况
PS:我使用的是ZF 1.11视图路径是简单的[1]位。您可以添加额外的脚本路径,这些路径按后进先出的顺序进行检查,因此对于每个模块,您将拥有标准路径,然后是主题路径。我敢肯定,我在过去已经将此代码发布到Stackoverflow,所以如果你搜索旧问题,寻找试图做主题内容的人,你应该会找到它。布局的工作方式与此类似,尽管我只在应用程序级别而不是模块级别对其进行了覆盖 对于模型,我无法在您的示例中看到重写模型的确切位置,但一般来说,PHP将使用include路径为您完成大部分工作。因此,只需将“override”目录添加到include路径的开头,PHP将检查每个目录,直到找到类为止。如果要求比这更复杂一点,你可以考虑编写自己的自动装弹器(参见:): 控制器是尴尬的一点,因为(据我所记得的)这些不是传统意义上的自动加载,它们的文件名和位置只是根据提供给前端控制器的路径假设的。通过在引导程序中检查是否存在类似
/modules/admin/themes/foo/controllers
的内容,并将其用作模块的控制器路径,而不是/modules/admin/controllers
,可以很容易地覆盖模块的所有控制器。这将是一种要么全有要么全无的方法——如果你想覆盖一个模块的控制器,你必须全部覆盖。如果你在Zend_Controller_Front类中深入研究,你可能会找到更好的方法
[1] 很容易成为相对人-所有这些都要求你对ZF非常满意。谢谢你的想法,这正是我想要的东西。另外,我可能已经找到了您所指的代码,但我还不确定:请阅读以下内容:设置不同的布局!;)