Yiiディレクトリ構成

「Yiiディレクトリ構成」の編集履歴(バックアップ)一覧はこちら

Yiiディレクトリ構成 - (2013/08/30 (金) 17:55:18) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[トップページ]] > [[Yii]] > ディレクトリ構成 サブディレクトリでの運用ではなく、ドメイン直下での運用(http://example.com/でスタートページにアクセス) する場合は、 外部公開ディレクトリ webroot 内部非公開ディレクトリ protected の2ディレクトリにまとめて、同階層構成にしておくと便利。 webrootは、直接document rootとしてマウントしておく。 (protectedは、document rootではないので、セキュリティ的安心) ※webrootとprotectedが同階層にない構成にする場合、 webroot/index.php webroot/index-test.php の2ファイルからbasic.phpを読み込む部分だけ修正が必要。 ***テスト以外の設定 具体的な設定は、まず protected/config/main.php は function _joinpath($dir1, $dir2) { return realpath($dir1 . '/' . $dir2); } $homePath = dirname(__FILE__) . '/../..'; $protectedPath = _joinpath($homePath, 'protected'); $runtimePath = _joinpath($protectedPath, 'runtime'); return array( 'basePath'=>$protectedPath, 'runtimePath' => $runtimePath, ... という形に。 次に、起動ファイルについて。共通する部分を protected/config/basic.php に外出しして、そこにyiiフレームワークのディレクトリを設定しておく。 <?php define('YII_FRAMEWORK' , '/home/myaccount/workspace/yii_proj/yii/framework'); ?> エントリースクリプト webroot/index.php では、このbasic.phpを読み込んで、以下のようにする require_once(dirname(__FILE__).'/../protected/config/basic.php'); $yii=YII_FRAMEWORK . "/yii.php"; $config=dirname(__FILE__).'/../protected/config/main.php'; ... テストを考えないのであれば、ここまででOK。 basic.phpは、この段階ではindex.phpからしか読み込まれないけど、設定ファイルは config以下にまとめたほうがよいので、これで良しとする。 *** テスト用の設定 上記に加えて、さらに以下が必要。 機能テスト用のエントリースクリプト webroot/index-test.php は require_once(dirname(__FILE__).'/../protected/config/basic.php'); $yii=YII_FRAMEWORK . "/yii.php"; $config=dirname(__FILE__).'/../protected/config/test.php'; ... これは、index.phpと共通のbasic.phpを読み込むことで設定しているため、環境が違う 場合でも、basic.phpを管理すればOK。 そのほか、単体テスト/機能テスト共通の、テスト用ブーストラップスクリプト protected/tests/bootstrap.php の設定ファイルも require_once(dirname(__FILE__).'/../config/basic.php'); $yiit=YII_FRAMEWORK . "/yiit.php"; $config=dirname(__FILE__).'/../config/test.php'; これも、basic.phpを読み込んで設定するようにしてあるので、環境が違う場合でも、 basic.phpを管理すればOK。 *** 機能テストで必要な、さらなる設定 ここまでは、環境ごとの違いは、すべてbasic.phpを管理することで対応できた。 しかしながら、機能テストについては、さらに環境依存で設定が必要なファイルが2つある。 (なお、蛇足だが機能テストの実行には、サーバー側にSelenium RC/Serverが必要) protected/tests/WebTestCase.php これは、サーバー上で機能テスト用のエントリースクリプトにhttpでアクセスする ためのURLを記述しておく必要がある。環境依存なので注意。 webrootを直接document rootにしておいて、かつ、localhostでアクセス出来るのなら、 次のように記述する。 define('TEST_BASE_URL','http://localhost/index-test.php/'); また、機能テストで使用するブラウザは、 protected/tests/phpunit.xml に記述してある。サーバ側にIEがインストールされていない場合は、IEの部分をコメント アウトしておくこと。 <selenium> <!-- <browser name="Internet Explorer" browser="*iexplore" /> --> <browser name="Firefox" browser="*firefox" /> </selenium> 2013/08/30
[[トップページ]] > [[Yii]] > ディレクトリ構成 サブディレクトリでの運用ではなく、ドメイン直下での運用(http://example.com/でスタートページにアクセス) する場合は、 外部公開ディレクトリ webroot 内部非公開ディレクトリ protected の2ディレクトリにまとめて、この2ディレクトリが同じ階層になる構成にしておくと便利。 webrootは、直接document rootとしてマウントしておく。 protectedは、document rootではないので、セキュリティ的に安心。 ※webrootとprotectedが同階層にない構成にする場合、 webroot/index.php webroot/index-test.php の2ファイルからbasic.phpを読み込む部分だけ修正が必要。 ***通常運用の場合(テスト以外の箇所の設定) 具体的な設定は、まず protected/config/main.php は function _joinpath($dir1, $dir2) { return realpath($dir1 . '/' . $dir2); } $homePath = dirname(__FILE__) . '/../..'; $protectedPath = _joinpath($homePath, 'protected'); $runtimePath = _joinpath($protectedPath, 'runtime'); return array( 'basePath'=>$protectedPath, 'runtimePath' => $runtimePath, ... という形に。 次に、起動ファイルについて。共通する部分を protected/config/basic.php に外出しして、そこにyiiフレームワークのディレクトリを設定しておく。 <?php define('YII_FRAMEWORK' , '/home/myaccount/workspace/yii_proj/yii/framework'); ?> エントリースクリプト webroot/index.php では、このbasic.phpを読み込んで、以下のようにする require_once(dirname(__FILE__).'/../protected/config/basic.php'); $yii=YII_FRAMEWORK . "/yii.php"; $config=dirname(__FILE__).'/../protected/config/main.php'; ... コマンドラインスクリプト protected/yiic.php も同様に、以下のようにする require_once(dirname(__FILE__).'/config/basic.php'); $yiic=YII_FRAMEWORK . "/yiic.php"; $config=dirname(__FILE__).'/config/console.php'; ,,, テストを考えないのであれば、ここまででOK。 basic.phpは、この段階ではindex.phpからしか読み込まれないけど、設定ファイルは config以下にまとめたほうがよいので、これで良しとする。 *** テスト用の設定 上記に加えて、さらに以下が必要。 機能テスト用のエントリースクリプト webroot/index-test.php は require_once(dirname(__FILE__).'/../protected/config/basic.php'); $yii=YII_FRAMEWORK . "/yii.php"; $config=dirname(__FILE__).'/../protected/config/test.php'; ... これは、index.phpと共通のbasic.phpを読み込むことで設定しているため、環境が違う 場合でも、basic.phpを管理すればOK。 そのほか、単体テスト/機能テスト共通の、テスト用ブーストラップスクリプト protected/tests/bootstrap.php の設定ファイルも require_once(dirname(__FILE__).'/../config/basic.php'); $yiit=YII_FRAMEWORK . "/yiit.php"; $config=dirname(__FILE__).'/../config/test.php'; これも、basic.phpを読み込んで設定するようにしてあるので、環境が違う場合でも、 basic.phpを管理すればOK。 *** 機能テストで必要な、さらなる設定 ここまでは、環境ごとの違いは、すべてbasic.phpを管理することで対応できた。 しかしながら、機能テストについては、さらに環境依存で設定が必要なファイルが2つある。 (なお、蛇足だが機能テストの実行には、サーバー側にSelenium RC/Serverが必要) protected/tests/WebTestCase.php これは、サーバー上で機能テスト用のエントリースクリプトにhttpでアクセスする ためのURLを記述しておく必要がある。環境依存なので注意。 webrootを直接document rootにしておいて、かつ、localhostでアクセス出来るのなら、 次のように記述する。 define('TEST_BASE_URL','http://localhost/index-test.php/'); また、機能テストで使用するブラウザは、 protected/tests/phpunit.xml に記述してある。サーバ側にIEがインストールされていない場合は、IEの部分をコメント アウトしておくこと。 <selenium> <!-- <browser name="Internet Explorer" browser="*iexplore" /> --> <browser name="Firefox" browser="*firefox" /> </selenium> 2013/08/30 2013/10/10 追記

表示オプション

横に並べて表示:
変化行の前後のみ表示: