我发现Zend Framework应用程序中的Bootstrap类中使用了很多函数 像:
_initRoute()
_initLocale()
_initLayout()
.......
但是我搜索了它的参考但是我什么都不喜欢
Zend_Application_Bootstrap_BootstrapAbstract
Zend_Application_Bootstrap_Bootstrap
它们都不包含任何这些功能。
我在哪里可以找到该功能的完整参考?
答案 0 :(得分:6)
基本上,这些resource plugins位于library/Zend/Application/Resource/
。您也可以创建自定义的。
请参阅My detailed answer至very similar question,这也适用于此。
另请参阅BootstrapAbstract.php
:
/**
* Get class resources (as resource/method pairs)
*
* Uses get_class_methods() by default, reflection on prior to 5.2.6,
* as a bug prevents the usage of get_class_methods() there.
*
* @return array
*/
public function getClassResources()
{
if (null === $this->_classResources) {
if (version_compare(PHP_VERSION, '5.2.6') === -1) {
$class = new ReflectionObject($this);
$classMethods = $class->getMethods();
$methodNames = array();
foreach ($classMethods as $method) {
$methodNames[] = $method->getName();
}
} else {
$methodNames = get_class_methods($this);
}
$this->_classResources = array();
foreach ($methodNames as $method) {
if (5 < strlen($method) && '_init' === substr($method, 0, 5)) {
$this->_classResources[strtolower(substr($method, 5))] = $method;
}
}
}
return $this->_classResources;
}
答案 1 :(得分:3)
这些函数没有在任何地方定义,仅在Bootstrap.php
中 - 这些被称为资源方法。在引导过程中,ZF会自动调用以Bootstrap.php
开头的_init
中定义的每个函数。
在此处阅读更多内容:http://framework.zend.com/manual/en/zend.application.theory-of-operation.html