3

データベースクエリ実行の分析を測定する(そして何らかの方法で表示する)Kohanaフレームワークに方法はありますか? symfony 1.x にはdebug toolbar(画像を参照: http://wiki.netbeans.org/wiki/images/0/0c/Symfony-06e_NB68symfony_es.jpg ) があり、symfony2 にはプロファイラー ツールがあります。Kohana標準版でもWebリソースでも、このようなものは見つかりませんでした。

特に kohana 3.2 を使用していますが、すべての 3.x バージョンで非常に似ていると思います。

4

1 に答える 1

3

組み込みの Kohanaプロファイラーがあります。テンプレート ビューでは、常に次のように使用します。

<?php if (Kohana::$environment !== Kohana::PRODUCTION) : ?>
    <div class="footer">
        <?php echo View::factory('profiler/stats') ?>
    </div>
<?php endif ?>

データベース接続を表示するには、config/database.php でプロファイリングを有効にする必要があります (ここに DB 設定が保存されます)。明示的に TRUE を記述するか、Kohana::$environment変数を確認できます。

return array
(
    'default' => array(
        'type'       => 'mysql',
        'connection' => array(
            'dsn'        => '',
            'username'   => 'yyy',
            'password'   => 'zzz',
            'persistent' => FALSE,
        ),
                'identifier'   => '',
        'table_prefix' => '',
        'charset'      => 'utf8',
        'caching'      => Kohana::$environment === Kohana::PRODUCTION,
        'profiling'    => Kohana::$environment !== Kohana::PRODUCTION,
    ),

また、ブートストラップでプロファイリングを有効にする必要があります。これは私が通常行うことです:

if (Arr::get($_SERVER, 'SERVER_NAME') !== 'localhost') // OR your testing URL
{
    Kohana::$environment = Kohana::PRODUCTION;
    error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
    $server_name = 'productions_url';
}
else
{
    Kohana::$environment = Kohana::DEVELOPMENT;
    error_reporting(E_ALL | E_STRICT);
    $server_name = 'testing_url';
}

Kohana::init(array(
    'base_url' => $server_name,
    'index_file' => FALSE,
    'charset' => 'utf-8',
    'cache_dir' => APPPATH . 'cache',
    'errors' => TRUE,
    'profile' => Kohana::$environment !== Kohana::PRODUCTION,
    'caching' => Kohana::$environment === Kohana::PRODUCTION,
));
于 2013-05-27T09:38:33.227 に答える