[ ZendFramework1 ] application.ini を複数のファイルに分割する

Pocket

ここでは、Zend Framework1 のコンフィフグファイルである application.ini ファイルを分割して記述する設定例を掲載しています。今でも、Zend Framework1 は日本で使用されているのでしょうか?気になるところです。

スポンサーリンク

application.ini のテンプレート

Zend Framework では、Zend_Tool コマンドを使用して Zend アプリケーションの雛形を作成すると、次のような application.ini の雛形がコンフィグファイルとして追加されます。

// application/configs/application.ini

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0

[development]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

コンフィグファイルを分割して管理する

作成された application.ini に対してデータベースの設定やログの出力設定などをコンフィグファイルに追加して、アプリケーションから読み込み利用するうちに、コンフィグファイル自体が大きくなっていくと、ファイルを分割して、可読性や保守性の向上を図りたくなることもあると思います。

Zend Framework では、この要件を満たすために config 設定を行うことができます。以下が設定ファイルを分割する設定例になります。

[application.ini]

(省略)

// 以下のように配列とすることで複数に分割することが可能である
config[] = APPLICATION_PATH "/configs/extra/extra1.ini"
config[] = APPLICATION_PATH "/configs/extra/extra2.ini"

(省略)

このような設定によって、extra/extra1.ini と extra/extra2.ini に設定した内容が、application.ini の設定にマージされるようになります。なお、extra1.ini や extra2.ini の記述方法は application.ini と同じです。単純に application.ini の内容を別ファイルに分割して記述することができると考えると良いでしょう。例えばデータベース設定やログ出力設定などの機能単位や、開発環境用と本番環境用といったように扱いやすい方法でコンフィグファイルを分割して管理することができるようになります。

分割するファイルは ini 形式でなく xml 形式など異なる形式のファイルに分割して記述することもできますが、1つに統一しておくほうが望ましいでしょう。

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *