4

Zend Framework のマニュアルを読んでいますが、ブートストラップが特に ZF で一般的にどのように機能するかを理解できません。あの人たちは書く:

Bootstrap クラスは、初期化するリソースとコンポーネントを定義します。

Ok。これは、最初に Bootstrap クラスをインスタンス化する必要があることを意味します。しかし、その後、構成iniファイルについて書きます。そして、そのBootstrap中にクラス自体に関するディレクティブがあります:

1.  bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
2.  bootstrap.class = "Bootstrap"

Bootstarpしたがって、私が理解しているように、最初にインスタンス化されるのはクラスではないということです。まず最初に、構成ファイルを読み取り、Bootstrapクラスに関する情報を取得して、その情報をインスタンス化する必要があります。Bootstrapそれ以外の場合は、構成ファイルにクラスに関する情報を含める必要はありません。私はこれを行うことができるので:

require_once(/application/bootstrap.php) 
$b = new Bootstrap();

Bootstrap がインスタンス化されます。

しかし、構成ファイルを読み取ってBootstrap.

  1. ブートストラップは実際にどのように機能しますか?
  2. 誰がどのステージでそれをインスタンス化しますか?
  3. APPLICATION_PATH彼らは、は定数であると言います。定数は、使用する前にどこかで定義する必要があります。Bootstrap クラスで使用する場合、どこで定義できますか?

ありがとうございました。

4

2 に答える 2

6

index.phpZF に同梱されているファイルを見ると、これらの質問のほとんどに答えているはずです。

APPLICATION_PATH定数は で定義され、アプリケーションを単純にブートストラップして実行index.phpするオブジェクトが作成される場所でもあります。Zend_Application

Zend_Applicationブートストラップが ZF1 のどこにあるかを知る方法は 2 つあります。

最初の方法 (明示的に設定):

$application = new Zend_Application(
    APPLICATION_ENV,
    array(
        'bootstrap' => array(
            'class' => 'Bootstrap',
            'path' => APPLICATION_PATH . '/Bootstrap.php',
        ),
        'config' => APPLICATION_PATH . '/configs/application.ini',
    )
);

上記の例では、ブートストラップ クラスとブートストラップ スクリプトは、ファイルとともに$options直接のコンストラクタの一部として渡されます。Zend_Applicationapplication.ini

ブートストラップ クラスとスクリプトをapplication.iniファイルに入れると、次のZend_Applicationように初期化できます。

$application = new Zend_Application(
    APPLICATION_ENV,
    array('config' => APPLICATION_PATH . '/configs/application.ini')
);

Zend_Applicationファイルを処理し、application.iniそこから Bootstrap 情報を収集します。

その後、呼び出し$application->bootstrap()->run();てアプリケーションを実行できます。

質問に直接答えるには:

  1. ブートストラップはアプリケーションをセットアップします。ファイルを処理した後ini、最初に行うことです。これにより、ZF アプリケーションに必要なすべてのコンポーネントがセットアップされます (フロント コントローラー、Zend_View、レイアウト、DB 接続など)。
  2. index.php は、ほとんど最初にそれをインスタンス化します。
  3. APPLICATION_PATHindex.php ですぐに定義されます
于 2012-06-12T18:48:57.417 に答える
2

ここに私の簡単な説明があります:

Bootstrap は、フレームワーク リソースの初期化、フレームワーク構成の初期化、クラスおよびその他のフレームワーク準備作業のロードを行います。これは、すべてのリクエストで開始され、デフォルト構成で index.php ファイルによって開始されます。

  1. まず、定数が定義されてindex.phpいる場所で呼び出され、クラス コンストラクターAPPLICATION_PATHに渡されます。Application
  2. コンストラクター フレームワークで作成されたアプリケーション クラス インスタンスは、構成ファイルを読み取り、後で使用するために保存します。
  3. 次に、フレームワークのブートストラップが開始されます。

    I. Application/Bootstrap クラス インスタンスが作成されました (フレームワークは、必要なプラグイン、*.ini ファイルで定義されたリソースの作成を開始します)。

    Ⅱ.カスタム ブートストラップ クラスを取得し、メソッドをinitプレフィックスで初期化します。

    III. FrontController リソースをロードし、フロント コントローラーがリクエスト ディスパッチ プロセスを開始します (モジュール、コントローラー、ビューをロードし、プラグイン コールバックを呼び出します)。

全体として、ファイルから始めてライブラリまですべてを自分で追跡しindex.php、どのクラスがどの順序でロードされているかを理解することができます。

于 2012-06-12T18:46:54.647 に答える