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

リソースのブートストラップは、2 つの方法で宣言できます。

Bootstrapクラス内の PHP メソッド。

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

またはiniファイル内

resources.<resource_name>

最後のケース ( inifile ) では、リソースを init するためのコードを使用して、から拡張するクラスをZend_Application_Resource_ResourceAbstract宣言する必要があります。

セッション リソースのブートストラップ

bootstrap('session')デフォルトでの具体的なケースでは、init()で宣言されたメソッドを使用しますZend_Application_Resource_Session

于 2013-04-09T13:03:42.170 に答える