- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ZendFrameworkのindex.phpで)
ZendFrameworkのindex.phpの違いと使用方法
このQ&Aのポイント
- ZendFrameworkのindex.phpには3種類の実装方法があり、それぞれの違いと使用方法を説明します。
- 1つ目の実装方法はZend_Applicationのインスタンスを使用する方法です。これは、Zend_Applicationクラスを使用してアプリケーションを初期化し、設定ファイルを読み込む方法です。
- 2つ目の実装方法はZend_Controller_Front::run()を使用する方法です。これは、Zend_Controller_Frontクラスの静的なメソッドであるrun()を使用してアプリケーションを実行する方法です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
個人的な意見ですが 2について Zend_Controller_Front::run メソッドは 3で書いてあることをまとめただけのメソッドです。 そのため、setControllerDirectoryしか使えません。 ControllerDirectoryが1つで済むような小規模な開発の場合に向いていると思います。 3について 機能ごとに作成したControllerDirectoryをまとめたModuleDirectoryを指定するaddModuleDirectoryが使用できるため ある程度の規模の開発に向いていると思います。 1について 基本的には3と同じですが、application.iniに各設定を外出ししているためメンテナンス性に優れていると思います。 逆に、3についてはちょっとした処理の切替が容易なため柔軟なカスタマイズができると言えます。 私は、ほとんど3をベースにした書き方をしているので偉そうなことは言えませんが 1か3で自分が理解しやすいほうを使う程度の認識でいいのではないでしょうか。
お礼
お礼が遅くなってしまいすいません。 初期設定の方法が異なっているだけで、行われる処理内容は同じなのですね。 【設定方法】 1. FrontControllerクラスのadd,setメソッド 3.config/application.ini Zendを使い始めてすぐだったので、この部分がまったく理解できていませんでした。 改めて、ありがとうございました。 ちなみに年始に作成したアプリケーションでは1の方法を使いました。 1でも3でも、設定できる項目は同じようでapplication.iniは以下のようなものを使用しました。 phpSettings.display_startup_errors = 0 phpSettings.date.timezone = 'Asia/Tokyo' phpSettings.display_errors = 1 bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.layout.layout = "layout" resources.layout.layoutPath = APPLICATION_PATH "/layouts" resources.frontController.params.displayExceptions = 1 resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"