Zend Framework Bootstrap函数从何处获取

时间:2011-02-21 19:28:18

标签: zend-framework bootstrapping

我发现Zend Framework应用程序中的Bootstrap类中使用了很多函数 像:

_initRoute()
_initLocale()
_initLayout()
.......

但是我搜索了它的参考但是我什么都不喜欢

Zend_Application_Bootstrap_BootstrapAbstract
Zend_Application_Bootstrap_Bootstrap

它们都不包含任何这些功能。

我在哪里可以找到该功能的完整参考?

2 个答案:

答案 0 :(得分:6)

基本上,这些resource plugins位于library/Zend/Application/Resource/。您也可以创建自定义的。

请参阅My detailed answervery 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