1

会社のZendFrameworkとDoctrineのインストール用にプロファイラーをセットアップしたいと思います。現在、開発環境にいるときに表示されるバーが下部にあり、基本的なタイミングとクエリカウントを提供します(Symfonyプロファイラーバーのように)。私がやりたいのは、そのすべての情報とそれ以上をSQLiteデータベースに保存し、Symfonyが許可するようなプロファイラーでその情報を表示できるようにすることです。

このプロファイラーのすべてのコードを配置できるモジュールを会社のライブラリに含めることができる方法はありますか?理想的には、開発者が「domainname.com/CompanyProfiler」と入力してフルスクリーンプロファイラーを表示できるように設定する必要があります。現在、新しいモジュールなしでそのルーティングを可能にする方法はないようです。

編集: setControllerDirectoryについての答えを見た後、フロントコントローラーのメソッドを調べて、addModuleDirectoryを見つけました。これはまさに私が必要としているもののように聞こえます。しかし、私はそれを機能させることができません。

$frontController->addModuleDirectory(APPLICATION_PATH . '/../library/Company/modules');

その後getControllerDirectoryを実行すると、次のように表示されます。

'profiler' => '{really long correct path}../library/Company/modules\profiler\controllers'

「controllers」フォルダーには、クラス名が次のIndexController.phpがあります。

class Profiler_IndexController extends Zend_Controller_Action

しかし、URL「/ profiler」にアクセスしようとすると、コントローラーが見つからないというエラーが発生します。私が間違っていることについて何か考えはありますか?

エラーコントローラーでエラーをvar_dumpすると、デフォルトモジュールにアクセスしようとしていることがわかります。

4

2 に答える 2

1

私が正しく理解していれば、ライブラリにコントローラも入れたいですか?その場合、 setControllerDirectory()を使用して、すべてのコントローラーがライブラリー(または他の場所)にあるCompanyProfilerモジュールをZFが検索するように設定できます。

于 2012-07-27T18:01:57.713 に答える
0

ブートストラップに以下を配置して、モジュールへの直接ルートを追加してみてください。

protected function _initRoutes()
{
    $router = Zend_Controller_Front::getInstance()->getRouter();

    // Route for profiler
    $route = new Zend_Controller_Router_Route(
        'profiler/:controller/:action/*',
        array(
            'module'     => 'profiler',
            'controller' => 'index',
            'action'     => 'index'
        )
    );
    $router->addRoute('profiler', $route);
}
于 2012-07-30T14:13:44.320 に答える