1

是否可以在某些外部脚本或系统中加载 Zend Framework?

例如,我想在我的 CMS 中使用 ZF 的全部功能。

您的帮助将不胜感激。

4

1 回答 1

1

可以在任何 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。

希望这个混乱的帖子有帮助:)

于 2013-01-25T10:27:24.597 回答