2012-04-22 25 views
1

我决定为我的PHP项目中的一个使用ZF。但我对如何添加管理模块与我的网站很困惑?我阅读了一些像这样的文章(http://www.amazium.com/blog/create-modular-application-with-zend)等等。他们提出了一个不同的方式来做到这一点。 我想知道是否有Zend的任何标准方法(我确定他们khow几乎每个站点都需要一个管理模块)?任何人都可以建议一步一步的指导添加管理模块在默认的zend框架项目?

或者可以有人请建议一步一步的指导如何添加一个管理模块在默认zend框架项目。

BTW:我使用的Zend Studio 9.0的IDE(如果该事项)..

+1

如果您正在投票结束,请在评论中提及原因! – Saurabh 2012-04-22 07:47:36

+0

为那些投票结束 - 你能解释我为什么这个问题是“不建设性”..你可以编辑这个问题,如果你认为它不是“不建设性”... – Saurabh 2012-04-22 08:02:13

回答

3

我假设ZF 1.11:

在你的application.ini确保这些线路在这里(可能有点超必杀,但它的工作原理):

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontController.moduleControllerDirectoryName = "controllers" 
resources.frontController.params.prefixDefaultModule = "" 
resources.modules = "" 

你的路径应该是这样的:

/application 
    /configs 
    /controllers 
    /forms 
    /layouts 
    /models 
    /modules 
     /admin 
      /controllers 
      /models 
      /forms 
      /views 
       /filters 
       /helpers 
       /scripts 
     Bootstrap.php //in your admin folder bootstrap extends Zend_Application_Module_Bootstrap 
    /views 
Bootstrap.php //application level bootstrap 
/docs 
/library 
/public 

除了引导路径要求,可以通过运行ZF工具命令zf create module admin

要记住的很重要的事情来完成的是,每个模块需要的bootstrap.php文件,它的根。这有利于(除其他之外)自动装载机。

<?php 
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap { 
    //put your code here 
} 

这就是模块引导所需的全部内容。

[编辑] 选择不同的布局(创建第二布局)的控制器(管理例如)简单的方法就是在每个控制器中:

public function preDispatch() { 

     $this->_helper->layout->setLayout('admin'); 
    } 

如果需要改变手的布局的在很多控制器中,你可能需要一个控制器插件(不是我的经验领域)。

+0

超级谢谢你的答案!但我如何将管理布局从我的网站布局中分离出来?我也想分开网站和管理员的公共资源......怎么样? – Saurabh 2012-04-22 08:18:50

+0

检查编辑。 – RockyFord 2012-04-22 08:23:50

+0

@Saurabh:对于每个模块的布局,请参阅此答案的第二部分:http://stackoverflow.com/questions/10256280/how-to-autoload-zend-framework-module-models/10257309#10257309 – 2012-04-22 08:26:18

相关问题