phpcodemaker/cake-debug-query
Composer 安装命令:
composer require phpcodemaker/cake-debug-query
包简介
Query Debugger in CakePHP
关键字:
README 文档
README
Debug Query in CakePHP
This is a development support code and not the complete package. The method in the Query.php under src folder can be copied to /vendor/cakephp/cakephp/src/Database/Query.php Class.
Note
If There is a new update from CakePHP Database Query then the changes you made will be lost.
Dependency
Make sure the dependency for this debugQuery($formatSQL = true) method jdorn/sql-formatter is available in vendor. You can install this dependency using this link https://github.com/jdorn/sql-formatter.
How to use in code?
Place the debugQuery($formatSQL = true) method as follows inside file
<!-- language: php -->
public function debugQuery($formatSQL = true): string
{
$query = $this->sql();
$placeholderArray = $this->getValueBinder()->bindings();
if (null != $placeholderArray) {
foreach ($placeholderArray as $placeholder => $paramArray) {
switch ($paramArray['type']) {
case 'json' :
$QueryParam[substr($placeholder, 1)] = '\'' . json_encode($paramArray['value'], JSON_NUMERIC_CHECK) . '\'';
break; case 'boolean':
case 'integer':
$QueryParam[substr($placeholder, 1)] = $paramArray['value'];
break;
case 'string':
case 'text' :
default :
$QueryParam[substr($placeholder, 1)] = "'{$paramArray['value']}'";
break;
}
}
}
$outputQuery = $query;
if (!empty($QueryParam)) {
$outputQuery = \Cake\Utility\Text::insert($query, $QueryParam);
}
return $formatSQL ? \SqlFormatter::format($outputQuery) : $outputQuery;
}
`
SQL with Formatted view Within Controller
<!-- language: php -->
$this->loadModel('Model);
print $this->Model
->find()
->select(["select_column"])
->where(["user_id" => 1])
->debugQuery()
[output]
SELECT
Panels.panel AS Panels__panel,
Panels.element AS Panels__element
FROM
panels Panels
SQL without Formatting view Within Controller
<!-- language: php -->
$this->loadModel('Model);
$this->Model
->find()
->select(["select_column"])
->where(["user_id" => 1])
->debugQuery(false)
[output]
SELECT Panels.panel AS Panels__panel, Panels.element AS Panels__element FROM panels Panels
[Note]
While using dd() in web, Logging(i.e. \Cake\Log\Log::debug()) and CLI for debugging purpose use formatSQL flag false as follows,
otherwise debugQuery returns HTML which you can't see the SQL in readable format.
dd($this->Model->find()->where()->debugQuery(false));
phpcodemaker/cake-debug-query 适用场景与选型建议
phpcodemaker/cake-debug-query 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 15 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 05 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cakephp3 sql debugger」 「cakephp3 query debugger」 「cakephp3 debug sql」 「cakephp3 debug query」 「cakephp3 debug sql query」 「cakephp4 sql debugger」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 phpcodemaker/cake-debug-query 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 phpcodemaker/cake-debug-query 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 phpcodemaker/cake-debug-query 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This bundle lets you use the Tracy's debug screen in combination with the the default profiler in your Symfony application.
A fork of runcmf/runtracy
AclManager plugin for CakePHP 3.x
AWS S3 datasource in CakePHP3
Use Google Cloud Logger into your Yii projects
Pop Debug Component for Pop PHP Framework
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-05-30