dubcanada / php-profiler
此包最新版本(dev-master)的许可证信息不可用。
PHP 快速分析器分支
dev-master
2013-02-22 17:04 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-11 23:13:44 UTC
README
版本 2
由 Steven Surowiec 创建 steven.surowiec@gmail.com
已转换为 Composer
由 dubcanada
简介
PHP 分析器是 Ryan Campbell 的 PHP 快速分析器的一个分支,由 Particletree 提供
安装
设置非常简单直接。需要进行五个主要步骤。
- 将代码检出至您的库目录,以便自动加载类。
- 实例化 Profiler_Profiler
- 在应用程序结束时调用 Profiler_Profiler 的 display() 方法。
设置和使用
设置 PHP 分析器相当简单。以下是最新版本的简短代码示例。
$profiler = new Profiler_Profiler();
Profiler_Console::logSpeed('Start Sample run');
Profiler_Console::logMemory($object);
Profiler_Console::logSpeed('End Sample run');
$profiler->display();
异常也可以记录
try {
// Some code goes here
}
catch (Exception $e) {
Profiler_Console::logError($e, $e->getMessage());
}
数据库查询也可以记录
Profiler_Console::logQuery($sql); // Starts timer for query
$res = mysql_query($sql);
Profiler_Console::logQuery($sql); // Ends timer for query
或手动
$start = microtime(true);
$res = mysql_query($sql);
$end = microtime(true);
Profiler_Console::logQueryManually($sql, null, $start, $end);
使用自定义回调解释控制台的查询
$profiler = Profiler_Profiler(array('query_explain_callback' => array('My_Class', 'someMethod')));
Profiler_Console::logQuery($sql); // Starts timer for query
$res = mysql_query($sql);
Profiler_Console::logQuery($sql); // Ends timer for query
$profiler->display();
class My_Class {
// $sql gets passed in with 'EXPLAIN' already added.
public static function someMethod($sql) {
$res = mysql_query($sql);
return mysql_fetch_assoc($res);
}
}
配置
PHP 分析器允许您传入一些配置选项,以便满足您的需求。
- query_explain_callback 是用于解释 SQL 查询并获取额外信息的回调函数。使用的格式应与 PHP 的 call_user_func 函数使用的格式相同。
- query_profiler_callback 用于集成扩展查询分析器,如 MySQL 的查询分析器。
有关更多文档和代码示例,请参阅维基。
功能
以下是 PHP 分析器的一些功能
- 将任何字符串、数组或对象记录到控制台
- 记录所有查询并找出它们各自和总体的运行时间
- 通过重复查询计数学习哪些查询被多次运行
- 允许与您的 DAL 集成以解释执行的查询
- 显示所有包含的文件
- 显示页面加载的总内存使用量
- 记录任何字符串、变量或对象的内存使用情况
- 记录脚本中的特定点以查看到达它们所需的时间
- 通过查询类型计数查看给定页面上有多少查询是插入、更新、选择和删除
使用 PHP 分析器的网站
在您的网站上使用 PHP 分析器?告诉我!如果您不想被展示在这里,请告诉我,但我仍然喜欢了解人们如何使用 PHP 分析器,所以请发信息或电子邮件告诉我。