Zend Framework は、他のフレームワーク (CakePHP、CodeIgniter、Symfony...) と同様に、CLI コマンド (プロジェクト ジェネレーター) を介して新しいプロジェクトをセットアップするか、プロジェクト フォルダーとインクルード パスを手動でセットアップできます。
ベスト プラクティスは、次のような形式の手動アプローチを使用することです。
/project/
/project/vendors/... - all vendor libraries you may use in your project
/project/lib/... - your common libraries (if you have some)
/project/application/... - application files like controllers, views, temp folders etc...
例:
/project/vendors/Zend/... (zend framework)
/project/vendors/Symfony/... (symfony framework)
/project/lib/MyLib/... (your lib)
/project/application/Bootstrap.php
/project/public_html/index.php
index.php スニペット:
<?php
define('VENDORS_PATH', '/project/vendors');
define('LIB_PATH', '/project/lib');
set_include_path(
LIB_PATH . PATH_SEPARATOR .
VENDORS_PATH . PATH_SEPARATOR .
get_include_path()
);
// setup class autoloading
require_once VENDORS_PATH . '/Zend/Loader/Autoloader';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setDefaultAutoloader(create_function('$class', "include str_replace('_', '/', \$class) . '.php';"));
$autoloader->setFallbackAutoloader(true);
// run application, include Symfony or MyLib files...
プロジェクトを本番サーバーに移行する場合は、最初に環境設定を使用してプロジェクト構成をセットアップする必要があります。
setup.ini の例:
[production]
database.hostname = localhost
database.username = username
database.password = password1
database.dbname = live_db
[staging:production]
database.hostname = localhost
database.username = root
database.password = password2
database.dbname = local_db
apache .htaccess ファイルを使用すると、構成をロードするための環境を簡単にセットアップできます。
ローカル環境の .htaccess ファイル:
SetEnv APPLICATION_ENV staging
本番環境の .htaccess ファイル:
SetEnv APPLICATION_ENV production
環境変数を使用した index.php スニペット:
<?php
...
define('APPLICATION_ENV', getenv('APPLICATION_ENV'));
$config = new Zend_Config_Ini(APPLICATION_LIB . '/setup.ini', APPLICATION_ENV);
...