【发布时间】:2015-09-07 08:36:40
【问题描述】:
我想在现有项目中使用 Zend Framework。我已经有一个自动加载功能,我也不想使用 MVC,只是 Zend 的一些组件。
如何将组件(例如 Mail 组件)包含到现有项目中?
【问题讨论】:
标签: php zend-framework
我想在现有项目中使用 Zend Framework。我已经有一个自动加载功能,我也不想使用 MVC,只是 Zend 的一些组件。
如何将组件(例如 Mail 组件)包含到现有项目中?
【问题讨论】:
标签: php zend-framework
如果我没记错的话,所有 Zend 组件都使用 require_once 声明它们需要的类,而不使用自动加载。
所以我认为你可以尝试像这样包含 Zend 库:
// Ensure library/ is on include_path
set_include_path(
implode(
PATH_SEPARATOR,
array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path()
)
)
);
(当然,您必须更改realpath(APPLICATION_PATH . '/../library'以匹配您的项目)
然后像这样调用你的组件:
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
希望对你有帮助 :)
【讨论】:
此时您可能应该使用 Zend Framework 2 而不是 Zend Framework 1。在这种情况下,您可以使用 Composer 从 ZF2 加载单个组件。 Composer 包含自己非常好的自动加载器,您可以针对自己的站点对其进行训练,但您也可以忽略并尝试使用当前的自动加载器。
例如,可以使用(从命令行)包含 Mail 包
> composer require zendframework/zend-mail
然后(如果您确实使用 Composer 自动加载器),您可以开始在您的应用中使用 Zend\Mail。
您应该认真考虑使用 Composer 的自动加载器的原因是 Zend 组件依赖于其他 Zend 组件,并且手动管理这些组件是一件很痛苦的事情**。
【讨论】: