Zend Frameworkでのindex.phpでのmoduleのパスのセット  2009年6月2日

Zend Frameworkでのindex.phpでのパスのセットなどでlibraryパスのセットを記載しましたが。

ZendFrameworkでは、コントローラーを呼び出す前に、モジュールのパスもセットする必要があります。

Bsheでは実際には以下のように、/application以下に個々のアプリケーションのフォルダを決めているため、フォルダを参照して自動で、moduleのパスをセットしてくれるようにしてあります。

実際の実装はBsheの以下のファイルを参照してください。(ダウンロードはこちら

  • ●/www/_bshe/index.php

 

/アプリケーショントップ

 ┠ /application : 個々のアプリケーションのコントローラーやモデル

     ┠ /モジュール名 : 各モジュールのフォルダ

         ┠ /controllers : モジュールのコントローラー

 ┠ /bshe : Bshe独自のコントローラーやモデル

 ┠ /library

     ┠ /Bshe : Bsheのライブラリ

     ┠ /Zend : ZendFramework

 ┠ /www : Apacheの設定上のアプリケーションのルート(Aliasの設定先やドキュメントルート)

     ┠ /_bshe : Bshe独自のテンプレートやアプリケーション、Javascriptなど

     ┠ /_bshetemplate : アプリケーション独自のテンプレート(実際のHTMLコンテンツのおき場所)

実際の実装は以下のようになっています。

$dirScan = scandir(Bshe_Controller_Init::getMainPath() . ‘/application’, 1);
foreach ($dirScan as $key => $dirName) {
    if(($dirName != ‘models’) and ($dirName != ‘controllers’) and ($dirName != ‘views’) and ($dirName != ‘..’) and ($dirName != ‘.’)) {
        // パスに追加
        $controllerPaths[$dirName] = Bshe_Controller_Init::getMainPath() . ‘/application/’ . $dirName . ‘/controllers’;
    }
}
$front->setControllerDirectory($controllerPaths);

ここで、Bshe_Controller_Init::getMainPath()はアプリケーションのトップパスを返す関数です。(詳細はこちら

こうすることで、モジュールを追加するたびにindex.phpの中でコントローラーfrontにパスを追加せずに処理するようになっています。

 

このエントリをはてなブックマークに登録 このエントリをBuzzurlにブックマーク Yahoo!ブックマークに登録 このエントリをlivedoorクリップに登録 Deliciousにブックマーク

コメントを投稿