simplicity-ag / bjy-profiler
该包最新版本(v1.1.0)没有可用的许可信息。
Zend\Db 数据库分析器(也是 ZendDeveloperTools 的插件)
v1.1.0
2014-03-11 13:42 UTC
Requires
- php: >=5.3
- zendframework/zendframework: >=2.1.0
This package is not auto-updated.
Last update: 2024-09-23 12:42:26 UTC
README
为 Zend\Db 提供数据库查询分析功能的扩展适配器,以及类似于 ZF1 的 Zend_Db_Profiler 的分析器。我从 ZF1 的 Zend_Db 中移植了大部分代码。
注意:此模块现在与 Zend\Db 内置的分析器兼容。
注意:为了查询配置的堆栈跟踪,需要 PHP >= 5.3.6。
Composer/Packagist 用户
请注意,为了符合 composer/packagist 的新命名规范,此项目的包名已更改为 bjyoungblood/bjy-profiler。请更新您的 composer.json 以使用新包名。
配置与使用
以下是一个示例数据库配置
<?php $dbParams = array( 'database' => 'changeme', 'username' => 'changeme', 'password' => 'changeme', 'hostname' => 'localhost', // buffer_results - only for mysqli buffered queries, skip for others 'options' => array('buffer_results' => true) ); return array( 'service_manager' => array( 'factories' => array( 'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) { $adapter = new BjyProfiler\Db\Adapter\ProfilingAdapter(array( 'driver' => 'pdo', 'dsn' => 'mysql:dbname='.$dbParams['database'].';host='.$dbParams['hostname'], 'database' => $dbParams['database'], 'username' => $dbParams['username'], 'password' => $dbParams['password'], 'hostname' => $dbParams['hostname'], )); if (php_sapi_name() == 'cli') { $logger = new Zend\Log\Logger(); // write queries profiling info to stdout in CLI mode $writer = new Zend\Log\Writer\Stream('php://output'); $logger->addWriter($writer, Zend\Log\Logger::DEBUG); $adapter->setProfiler(new BjyProfiler\Db\Profiler\LoggingProfiler($logger)); } else { $adapter->setProfiler(new BjyProfiler\Db\Profiler\Profiler()); } if (isset($dbParams['options']) && is_array($dbParams['options'])) { $options = $dbParams['options']; } else { $options = array(); } $adapter->injectProfilingStatementPrototype($options); return $adapter; }, ), ), );
在执行几个查询(或者如果您愿意,在执行之前)之后,您可以使用服务定位器获取适配器,使用您提供的任何别名(使用 Zend\Db\Adapter\Adapter 是简单替换 Zend\Db 的适配器为我的分析适配器的好方法)。
$profiler = $sl->get('Zend\Db\Adapter\Adapter')->getProfiler(); $queryProfiles = $profiler->getQueryProfiles();