masnathan / sql-query-formatter
此包已被弃用且不再维护。未建议替代包。
一个非常轻量级的PHP类,可以将难以阅读的或计算机生成的SQL查询语句重格式化为人类友好的可读文本。
v1.2.1
2015-05-28 09:12 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: ~4.2
This package is not auto-updated.
Last update: 2022-02-01 12:48:00 UTC
README
一个非常轻量级的PHP类,可以将难以阅读的或计算机生成的SQL查询语句重格式化为人类友好的可读文本。
1. 安装
推荐通过Composer安装SQL Query Formatter。运行以下命令进行安装
php composer.phar require nilportugues/sql-query-formatter
2. 特性
人类可读的SQL格式化
- 人类可读的纯文本。无颜色,无突出显示。纯文本在大多数情况下已经足够。
数据绑定意识
- SQL Query Formatter非常重视数据绑定。
- 考虑并保留占位符语法,如
: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 Query Formatter遵循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.