wolfans/usql-parser 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wolfans/usql-parser

Composer 安装命令:

composer require wolfans/usql-parser

包简介

SQL规范检测器。

README 文档

README

1、功能及简单说明

2、安装

2.1 修改composer.json

  • 1、增加composer包服务器
"repositories" : [{
	"type" : "composer",
	"url" : "http://packages.xin.com"
}],
  • 2、配置绕过https校验规则
    
    #命令行调整 单个项目
    composer config secure-http false
    
    #命令行调整全局调整
    composer config -d secure-http false
    
    #手动增加配置
    "config" : {
        "secure-http" : false
    }

2.2、执行安装操作

   #安装指定版本(必须添加dev-master)
	composer require "uxin/sql-collector" dev-master

3、使用

3.1 方法介绍

  • 收集方法
/**
 * 收集项目信息
 *1、同一进程多次调用该方法,内部逻辑仅把参数存放到变量中,未请求远端接口
 *2、同一进程中最多收集100条记录。
 *3、代码销毁时,在析构函数中,批量上传sql信息
 *
 * @param string $dbName 库名(必传)
 * @param string $query SQL语句(必传)(如select id from table_a where id=? 格式,如果不能拆分参数可以写整个sql语句)
 * @param string $bindings(必传) $query对应的绑定信息json格式,如果没有填写{}
 * @param int $takeTime(必传) 执行sql消耗时间(单位:毫秒)
 * @param int $execTime(必传) 程序执行时间(时间戳)
 * @param string $projectName(必传) 项目名称
 * @return boolean
 */
 SqlStandard::instance()->collect($dbName, $query, $bindings, $takeTime, $execTime, $projectName);

3.2 项目接入

3.2.1 Laravel5.1版本
  • 第一步:在bootstrap/app.php中注册类
$app->register(App\Providers\EventServiceProvider::class);
  • 第二步:在app/Providers\EventServiceProvider.php添加监听事件
protected $listen = [
      'illuminate.*'=>[
           'App\Listeners\SqlQueryListener'
      ]
];
  • 第三步:创建app/Listeners/SqlQueryListener.php,实现sql收集
<?php
namespace App\Listeners;

use USQL\SqlStandard;

class SqlQueryListener extends Listener
{
    //
    public function __construct()
    {}

    public function handle($query, $bindings, $time, $name)
    {
        if(isset($_SERVER['SITE_ENV']) && $_SERVER['SITE_ENV'] == 'testing'){
            //库名需要手动录入
            $dbName='xin_insurance';
            //sql对应参数
            $bindings=json_encode($bindings);
            //sql消耗时间
            $takeTime=0;
            //sql执行时间
            $execTime=time();
            $pname='financialapi.youxinjinrong.com';
            SqlStandard::instance()->collect($dbName, $query, $bindings, $takeTime, $execTime, $projectName);
        }
    }
}
3.2.2 Laravel5.2+版本
  • 第一步:在bootstrap/app.php中注册类
$app->register(App\Providers\EventServiceProvider::class);
  • 第二步:文件app/Providers/EventServiceProvider.php中添加
protected $listen = [
     'Illuminate\Database\Events\QueryExecuted' => [
          'App\Listeners\SqlQueryListener'
     ]
];
  • 第三步:创建app/Listeners/SqlQueryListener.php,实现sql收集
<?php

namespace App\Listeners;

use App\Events\ExampleEvent;
use Illuminate\Database\Events\QueryExecuted;
use USQL\SqlStandard;

class SqlQueryListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {}

    /**
     * Handle the event.
     *
     * @param  ExampleEvent  $event
     * @return void
     */
    public function handle(QueryExecuted  $event)
    {
        if(isset($_SERVER['SITE_ENV']) && $_SERVER['SITE_ENV'] == 'testing'){
            $dbName=$event->connection->getConfig('database');
            $query=$event->sql;
            $bindings=json_encode($event->bindings);
            $takeTime=$event->time;
            $execTime=time();
            $projectName='lifeapi.uxincredit.com';
            SqlStandard::instance()->collect($dbName, $query, $bindings, $takeTime, $execTime, $projectName);
        }
    }
}

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Private
  • 更新时间: 2018-07-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固