1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/guanguans-think-soar

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

think-soar

!本项目不再维护,如果有人愿意接手维护可以联系我。

SQL 语句优化器和重写器.

适用于 thinkphp5 SQL 语句优化器扩展包, 基于 guanguans/soar-php.


环境要求

  • topthink/framework >= 5.1.

Установка

$ composer require guanguans/think-soar --dev

Использование

下载 XiaoMi 开源的 SQL 优化器 soar, 更多详细安装请参考 soar install

# macOS
$ wget https://github.com/XiaoMi/soar/releases/download/0.11.0/soar.darwin-amd64
# linux
$ wget https://github.com/XiaoMi/soar/releases/download/0.11.0/soar.linux-amd64
# windows
$ wget https://github.com/XiaoMi/soar/releases/download/0.11.0/soar.windows-amd64

Конфигурация, подробнее см. soar config

Скопируйте config\soar.php в каталог конфигурации thinkphp и настройте его. Установите для thinkphp app_debug и trace значение true.

Оценка SQL

Пример вызова метода:

<?php
namespace app\index\controller;

use think\Db;

class Index
{
    public function tests()
    {
        $user = Db::table('fa_user')->where('id', 1)->select();
        $sql = Db::table('fa_user')->fetchSql()->select();
        // Последняя инструкция SQL оценивается
        echo soar_score();
        // Оценка конкретной инструкции SQL
        echo soar_score($sql);
        echo soar()->score($sql);
    }
}

Результат вывода:


Анализ explain информации

Пример вызова метода:

<?php
namespace app\index\controller;

use think\Db;

class Index
{
    public function tests()
    {
        $user = Db::table('fa_user')->where('id', 1)->select();
        $sql = Db::table('fa_user')->fetchSql()->select();
        // Анализ последней инструкции SQL explain
        echo soar_html_explain();
        echo soar_md_explain();
        // Подробный анализ конкретной инструкции SQL explain
        echo soar_html_explain($sql);
        echo soar_md_explain($sql);
        echo soar()->htmlExplain($sql);
        echo soar()->mdExplain($sql);
    }
}

Результат вывода:


Синтаксическая проверка

Пример вызова метода:

$sql = 'selec * from fa_user';
echo soar_syntax_check();
echo soar_syntax_check($sql);
echo soar()->syntaxCheck($sql);

Результат вывода:

At SQL 1 : line 1 column 5 near "selec * from fa_user" (total length 20)


SQL отпечаток пальца

Пример вызова метода:

$sql = 'select * from fa_user where id=1';
echo soar_finger_print();
echo soar_finger_print($sql);
echo soar()->fingerPrint($sql);

Результат вывода:

select * from fa_user where id = ?


SQL beautification

Пример вызова метода:

$sql = 'select * from fa_user where id=1';
var_dump(soar_pretty());
var_dump(soar_pretty($sql));
var_dump(soar()->pretty($sql));

Результат вывода:

SELECT
* FROM
fa_user
WHERE
id = 1;


Преобразование markdown в html

Пример вызова метода:

echo soar_md2html("## 这是一个测试");
echo soar()->md2html("## 这是一个测试");

Результат вывода:

...

这是一个测试

...

soar help

Пример вызова метода:

var_dump(soar_help());
var_dump(soar()->help());

Результат вывода:

... /Users/yaozm/Documents/wwwroot/soar-php/soar: -allow-charsets string AllowCharsets (default "utf8,utf8mb4") -allow-collates string AllowCollates -allow-drop-index AllowDropIndex, 允许输出删除重复索引的建议 -allow-engines string AllowEngines (default "innodb") -allow-online-as-test AllowOnlineAsTest, 允许线上环境也可以当作测试环境 -blacklist string 指定 blacklist 配置文件的位置,文件中的 SQL 不会被评审。 ···

Выполнение произвольной команды soar

Пример вызова метода:

$command = "echo '## 这是另一个测试' | /Users/yaozm/Documents/wwwroot/soar-php/soar.darwin-amd64 -report-type md2html";
echo soar_exec($command);
echo soar()->exec($command);

Результат вывода:

...
<h2>这是另一个测试</h2>
...

License

MIT

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Оптимизатор и переписчик SQL-операторов фреймворка ThinkPHP 5/6. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/guanguans-think-soar.git
git@api.gitlife.ru:oschina-mirror/guanguans-think-soar.git
oschina-mirror
guanguans-think-soar
guanguans-think-soar
master