【问题标题】:kohana measure database execution timekohana 测量数据库执行时间
【发布时间】:2013-05-27 08:25:24
【问题描述】:

Kohana 框架中是否有任何方法可以测量(并以某种方式显示)数据库查询执行的分析?在 symfony 1.x 中有一个 debug toolbar(参见图片:http://wiki.netbeans.org/wiki/images/0/0c/Symfony-06e_NB68symfony_es.jpg),在 symfony2 中有一个分析器工具。我在 Kohana 标准版和网络资源中都找不到类似的东西。

我正在使用特别是 kohana 3.2,但我想它可能在所有 3.x 版本中都非常相似。

【问题讨论】:

    标签: php database profiling kohana


    【解决方案1】:

    有一个内置的 Kohana profiler。我总是在我的模板视图中这样使用它:

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

    要显示数据库连接,您需要在 config/database.php 中启用分析(这是存储数据库设置的位置)。您可以显式写入 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,
    ));
    

    【讨论】:

    • 它是自动显示数据库连接还是我必须编写比这个视图更多的代码?
    猜你喜欢
    • 1970-01-01
    • 2020-07-08
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2013-04-28
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多