我正在学习如何使用Zend框架并意识到动作助手是有用的东西.我在我的机器上设置了Zend的默认安装,但是我不知道帮助文件需要去哪里,我需要把它放在bootstrap文件中以及我如何使用它.任何人都可以指出我正确的方向 - ZF用户指南不向我清楚.
谢谢约翰
Dav*_*aub 16
关于在哪里放置自定义操作助手的两个想法:
application/controllers/helpers这些想法并不是唯一的.通常可以在多个项目中工作的功能应该被拉入一个单独的库中.但对于特定于应用程序的功能,有一个论点,它可能位于application文件夹中的某个位置.
@Jurian已经描述了"独立库"方法.对于特定于应用程序的帮助程序,您可以执行以下操作:
对于名为myHelper的帮助程序,Application_Controller_Helper_MyHelper在文件中创建一个类application/controllers/helpers/MyHelper.php.在Bootstrap,你有类似的东西:
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Application',
'basePath' => APPLICATION_PATH,
));
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH . '/controllers/helpers',
'Application_Controller_Helper_');
return $autoloader;
}
Run Code Online (Sandbox Code Playgroud)
然后可以使用以下命令在控制器中调用助手:
$this->_helper->myHelper;
Run Code Online (Sandbox Code Playgroud)
如您所见,这假设您正在使用appNamespace'Application'.如果没有,您可以(必须!)修改您的班级名称以适应您的情况.
干杯!
您可以将动作助手放在自己的库中.除了库/ Zend所有Zend的东西,你可以创建一个库/ MyLibrary文件夹(MyLibrary是任意选择的)并将动作助手放在那里.
一个好的地方是你需要创建的库/ MyLibrary/Controller/Action/Helper文件夹,并将动作助手放在那里(即Navigation.php).在此文件中,创建类MyLibrary_Controller_Action_Helper_Navigation.
下一步是在bootstrap期间将动作帮助器添加到Zend Framework的HelperBroker.因此,在Bootstrap.php文件中创建一个新方法并添加此函数:
protected function _initActionHelpers ()
{
Zend_Controller_Action_HelperBroker::addHelper(
new MyLibrary_Controller_Action_Helper_Navigation()
);
}
Run Code Online (Sandbox Code Playgroud)
最后一点是您需要通过将此规则添加到application.ini来配置此库的使用:
autoLoaderNameSpaces[] = "MyLibrary_"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7507 次 |
| 最近记录: |