Zend Framework のコントローラーは、frontcontroller デザイン パターンを使用します。フロントコントローラーへのすべてのリクエストは、単一のエントリ ポイント、index.php ファイルを介してルート化されます。
index.php は zend アプリケーションのインスタンスを作成し、アプリケーション フォルダーに作成する bootstrap.php を使用してアプリケーションのブートストラップ プロセスを実行します。
まず APPLICATION_PATH を定義し、それをアプリケーション内のいくつかのファイルで使用します。次に、アップロード フォルダーのパスが必要なアプリケーションのあらゆる場所で使用される UPLOAD_PATH を定義します。
次に、APPLICATION_ENVIRONMENT を定義します。 htaccess ファイルに設定した値を使用しようとします。何らかの理由でまだ設定されていない場合は、本番環境をデフォルトの環境タイプとして定義します...
次に、ライブラリ ディレクトリへのパスを php インクルード パスに追加します。
その後、Zend Framework Application.php ファイルと、キャッシュ クラスなどの他のいくつかのクラスをロードできます。これらのクラスは、構成ファイルを読み取り、キャッシュし、パフォーマンスを向上させるためにキャッシュ ディレクトリに保存し、後でコード内で取得するためにレジストリに保存し、最後にアプリケーション クラスのコンストラクターに渡してインスタンスを作成する必要があります。
1) キャッシュ フォルダーや構成ファイルへのパスなどの変数を設定します。
2) キャッシュ ディレクトリが存在するかどうかを確認し、存在しない場合は作成します。
3) キャッシュのキャッシュ バックエンドとフロントエンドのオプションをセットアップします。実例。フロントエンド アダプター ファイルとバックエンド アダプター ファイルを使用します。そのタイプのキャッシュを使用すると、構成ファイル (application.ini ファイル) の値を変更でき、次回アプリケーションを実行するときにキャッシュが構成ファイルを認識するためです。変更され、再ロードされます。
4) 次に、設定がキャッシュ内にあるかどうかを確認し、キャッシュ内にある場合は、キャッシュされた設定を使用します。キャッシュされていない場合 (キャッシュされたバージョンの有効期限が切れているか、アプリケーションを初めて実行するため)、構成をロードしてキャッシュに入れます。現在設定されている環境に対応する設定値をロードするために、環境 ass パラメータを zend config ini に渡します。開発、テスト、運用モードに異なる構成を使用します。
4) 次に、構成をレジストリに追加して、再度ロードすることなくアプリケーション内の他の場所で再利用できるようにします。
5) これで、実行の準備が整いました。アプリケーション。環境タイプと設定値をアプリケーション コンストラクターに渡すことで、zend アプリケーションのインスタンスを作成します。
6) ブートストラップが失敗した場合に例外をキャッチするために、try catch を使用します。例外がキャッチされた場合は、どの環境タイプがアクティブであるかを確認します。実稼働モードでは、エラー メッセージのみが出力されます。運用モードではない場合は、開発モードまたはテスト モードであることを意味し、エラーを理解してアプリケーションをデバッグするのに役立つエラーの stactrace も出力します。
Zend では、PHP スクリプトの最後に ?> を付けることを推奨しています。省略可能です
array($configurationPath), 'automatic_serialization' => true, 'lifetime' => $cacheLifetime); $backendOptions = array('cache_dir' => $cacheDirectory); $configurationCache = Zend_Cache::factory('File', 'File', $frontendOptions, $backendOptions); if (!$configuration = $configurationCache->load($configurationName)) { $configuration = new Zend_Config_Ini($configurationPath, APPLICATION_ENVIRONMENT); $configurationCache->save($configuration, $configurationName); } // 設定をレジストリに保存 Zend_Registry::set('Configuration', $configuration); // アプリケーション インスタンスを作成します $application = new Zend_Application(APPLICATION_ENVIRONMENT, $configuration); // ブートストラップを試してみる { $application->bootstrap() ->run(); } catch (Exception $Exception) { echo '
' 。 $Exception->getTraceAsString() 。 '