1

我的 zend 应用程序引导文件中有以下代码

protected function _initSessionId() {
    $this->bootstrap( 'session' );
    $opts = $this->getOptions();
    $cache = $this->bootstrap( 'cachemanager' )
    ->getResource( 'cachemanager' )
    ->getCache( 'memcached' );
    Zend_Db_Table_Abstract::setDefaultMetadataCache( $cache );

    Zend_Registry::set( 'cache', $cache );
    $defaultNamespace = new Zend_Session_Namespace();
    if ( !isset( $defaultNamespace->initialized ) ) {
        Zend_Session::regenerateId();
        $defaultNamespace->initialized = true;
    }
}

我想知道这条线$this->bootstrap('session')实际上做了什么。它实例化和调用哪个类/函数?

4

1 回答 1

3

如何引导资源

bootstrap(<resource_name>)告诉 Zend_Bootstrap 在继续之前初始化指定的资源。通常用于在初始化实际之前初始化所需的依赖项resource

资源引导程序可以通过两种方式声明。

类中的一个 PHP 方法Bootstrap

function _init<Resource_name>() { ... }

或者在ini文件中

resources.<resource_name>

在最后一种情况下(ini文件),Zend_Application_Resource_ResourceAbstract必须使用初始化资源的代码声明扩展自的类。

会话资源引导

对于bootstrap('session')默认情况下的具体情况,使用中init()声明的方法Zend_Application_Resource_Session

于 2013-04-09T13:03:42.170 回答