我一直在尝试编写一个Controller插件,我将用它来进行用户身份验证。 我已经编写了插件,它应该可以工作,但我只是不知道如何加载插件...我已经读过Zend Framework有很多自动加载的可能性..
我目前的目录结构:
domains
example.com
Application
configs
controllers
IndexController.php
AuthController.php
ErrorController.php
forms
layouts
scripts
layout.phtml
models
plugins
AuthenticationPlugin.php
views
helpers
scripts
auth
login.phtml
error
error.phtml
index
index.phtml
Bootstrap.php
library
Zend
pubic_html
.htaccess
index.php
任何人都可以帮助我吗?
提前致谢!
答案 0 :(得分:3)
假设您的appnamespace
是Application_
,那么您的插件类应为:
名为Application_Plugin_AuthenticationPlugin
存储在文件application/plugins/AuthenticationPlugin.php
使用类似(application/configs/application.ini
)中的内容注册到前控制器:
resources.frontController.plugins.auth = "Application_Plugin_AuthenticationPlugin"
答案 1 :(得分:2)
您可以使用与Zend相似的文件夹结构创建自己的库文件夹。例如(假设您自己的名称空间My_
):
library
My
Controller
Plugin
Authentication.php
Authentication.php
将包含一个名为My_Controller_Plugin_Authentication
的小组。
然后,您将在引导程序(manual)中注册命名空间:
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('My_');
如果失败,您可以使用资源自动加载器(manual)来使用上面的结构。 Zend Framework期望这些文件夹中的类也是名称空间前缀,因此您的类名称为Plugin_AuthenticationPlugin
。
答案 2 :(得分:0)
在例如您的Bootstrap文件中添加以下行:
Zend_Controller_Front::getInstance()->registerPlugin(new AuthenticationPlugin());