一般来说,您可以require_once
通过适当使用Zend_Loader_Autoloader
. 当然,关键是“合适”。
通常,您public/index.php
将 设置include_path
为library
文件夹。然后,如果您使用Zend_Application
,Zend_Loader_Autoloader
则注册 以查找任何符合 PSR-0 的类,其名称空间前缀已使用autoloadernamespaces
数组 in注册application/configs/application.ini
。
棘手的部分是定义在不“驻留在 include_path 上”的文件中的类,例如出现在 中的模型、application/models
驻留在 中的服务application/services
等。即使在那里定义的类往往遵循 PSR-0 标准,但事实是PSR-0 映射相对于包含路径之外的基础发生,这意味着系统必须知道类名前缀和基础路径之间的映射。这就是资源自动加载器的用武之地。这些资源自动加载器通常在应用程序引导程序扩展Zend_Application_Bootstrap_Bootstrap
和扩展的模块引导程序中自动设置Zend_Application_Module_Bootstrap
。
View helpers 是另一个“不在 include_path”中的类的例子,可能在类似application/views/helpers
. 由于这些通常在视图脚本中使用短格式调用$this->someHelper($someParam)
,因此必须告知系统如何从该短名称生成完全限定的类名。这是使用$view->addPrefixPath()
将命名空间前缀映射到文件系统位置来完成的。同样,应用程序级和模块级引导机制为您设置了其中的大部分。
对于不遵循 PSR-0 标准的库/类,您可以创建自定义自动加载器并将它们(通常在 Bootstrap 中)附加到Zend_Loader_Autoloader
单例。这是唯一一个明确包含/要求的地方。
tl;dr:通过正确使用现有的 ZF 自动加载器机制,您几乎不需要include/require
在自己的应用程序代码中包含语句。