nilportugues / sql-query-formatter
一个非常轻量级的PHP类,可以将难以阅读的或由计算机生成的SQL查询语句重新格式化为易于人类阅读的文本。
v1.2.2
2015-11-02 23:24 UTC
Requires
- php: >=5.5
Requires (Dev)
- fabpot/php-cs-fixer: ~1.9
- nilportugues/php_backslasher: ~0.2
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-14 16:34:34 UTC
README
一个非常轻量级的PHP类,可以将难以阅读的或由计算机生成的SQL查询语句重新格式化为易于人类阅读的文本。
1. 安装
推荐通过Composer安装SQL查询格式化器。运行以下命令进行安装
php composer.phar require nilportugues/sql-query-formatter
2. 功能
人类可读的SQL格式化
- 人类可读的纯文本。没有颜色,没有高亮。纯文本在大多数情况下已经足够好。
数据绑定意识
- SQL查询格式化器非常重视数据绑定。
- 考虑并保留占位符语法,如
:variable
或?
,在格式化时保持不变。
3. 使用
示例代码
<?php use NilPortugues\Sql\QueryFormatter\Formatter; $query = <<<SQL SELECT user.user_id, user.username, (SELECT role.role_name FROM role WHERE (role.role_id = :v1) LIMIT :v2, :v3 ) AS user_role, (SELECT role.role_name FROM role WHERE (role.role_id = :v4) LIMIT :v5, :v6 ) AS role FROM user WHERE (user.user_id = :v7) SQL; $formatter = new Formatter(); echo $formatter->format($query);
实际输出
SELECT user.user_id, user.username, ( SELECT role.role_name FROM role WHERE (role.role_id = :v1) LIMIT :v2, :v3 ) AS user_role, ( SELECT role.role_name FROM role WHERE (role.role_id = :v4) LIMIT :v5, :v6 ) AS role FROM user WHERE (user.user_id = :v7)
4. 完全测试
测试已使用PHPUnit和Travis-CI进行。所有代码均已测试,以确保与PHP 5.4至PHP 5.6以及HHVM (夜间发布)兼容。
要运行测试套件,您需要Composer
php composer.phar install --dev bin/phpunit
5. 作者
Nil Portugués Calderó
6. 特殊感谢
我想感谢以下人员
- Jeremy Dorn,他为sql-formatter的实现提供了基础,我以此为基础构建了这个版本。
7. 许可证
SQL查询格式化器采用MIT许可证。
Copyright (c) 2015 Nil Portugués Calderó
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.