是否可以在某些外部脚本或系统中加载 Zend Framework?
例如,我想在我的 CMS 中使用 ZF 的全部功能。
您的帮助将不胜感激。
可以在任何 PHP 应用程序中包含 ZF。正如 ZF 团队在手册中所述,ZF 组件是松散耦合的,因此您只能在应用程序中使用库的某些部分。
我通常做的是将 ZF 的自动加载器堆叠到 spl_autoloader 中,并且只向 ZF 自动加载器注册“Zend_”名称空间。这样,如果您的 CMS 的自动加载器未能包含您正在使用的 ZF 类,它将继续使用 Zend 的自动加载器来完成这项工作。
如果您想在您的 CMS 中使用 ZF 的 MVC 来处理某些请求,这也是可能的,尽管有点棘手。
我确实在 Joomla 2.5 组件中包含过一次 ZF。在大多数 CMS 中,任何模块、组件、插件等都是通过包含一个文件来执行的,并且该文件中的任何内容都将继续执行。
使用 Joomla,我只需将 Zend_Controller_Front 发送到上述文件中即可。我在 preDispatch 钩子(方法)上将一个插件(扩展 Zend_Controller_Plugin_Abstract)附加到前端控制器,并在该钩子中手动设置控制器、操作和模块(如果有),从 php 的 $_GET 或 $_POST 中获取信息,具体取决于您的 CMS 如何处理请求。
在脚本开头设置 ZF 自动加载器并在最后取消设置将完成包含 ZF 工作所需的文件的工作。
不要忘记在 PHP 的包含路径中包含 ZF。
希望这个混乱的帖子有帮助:)