Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend Framework HMVC体系结构帮助?_Zend Framework - Fatal编程技术网

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方法的同时,您将如何处理以下情况

  • 如何设置自动加载器并包含路径,以干净地处理可能(但不一定)被模块资源覆盖的应用程序控制器、模型、视图和其他应用程序资源

  • 如何初始化视图,使其能够使用主题资源覆盖每个场景中的默认视图资源

  • 我知道这是一个相当普遍的、开放式的请求,但我已经为此进行了几天的研究和实验,我尝试了十几种或更多不同的方法,但我似乎无法让所有的方法都起作用。我尝试的每件事似乎都破坏了其他东西,或者我就是在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非常满意。

    谢谢你的想法,这正是我想要的东西。另外,我可能已经找到了您所指的代码,但我还不确定:请阅读以下内容:设置不同的布局!;)