Commit ccfefe41 authored by luhongguang's avatar luhongguang

update:处理冲突

parents 84928268 72e614d8
<?php
namespace App\Models\shop\mysql;
use Api\PhpUtils\Mysql\MysqlBase;
class Shop extends MysqlBase
{
const TABLE_NAME = 'shop';
const CONFIG_INDEX = 'goods';
const PRIMARY_KEY = 'shop_id';
public static function getRecord($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
return self::get($colums, $where);
}
public static function getRecordMaster($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
return self::selectMaster($colums, $where);
}
public static function insertRecord($colums)
{
return self::insert($colums);
}
public static function updateRecord($colums, $where)
{
return self::update($colums, $where);
}
public static function save($data, $where = [])
{
if (empty($where)) {
return self::insert($data);
}
return self::update($data, $where);
}
public static function deleteRecord($where)
{
return self::delete($where);
}
public static function getRecords($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
return self::select($colums, $where);
}
public static function getCount($where)
{
return self::count($where);
}
}
<?php
namespace App\Models\shop\mysql;
use Api\PhpUtils\Mysql\MysqlBase;
class SubShop extends MysqlBase
{
const TABLE_NAME = 'sub_shop';
const CONFIG_INDEX = 'goods';
const PRIMARY_KEY = 'stores_id';
public static function getRecord($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
self::get($colums, $where);
}
public static function getRecordMaster($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
return self::selectMaster($colums, $where);
}
public static function insertRecord($colums)
{
return self::insert($colums);
}
public static function updateRecord($colums, $where)
{
return self::update($colums, $where);
}
public static function save($data, $where = [])
{
if (empty($where)) {
return self::insert($data);
}
return self::update($data, $where);
}
public static function deleteRecord($where)
{
return self::delete($where);
}
public static function getRecords($where, $colums = [])
{
if (empty($colums)) {
$colums = '*';
}
return self::select($colums, $where);
}
public static function getCount($where)
{
return self::count($where);
}
}
<?php
use App\Base\Base;
use App\Models\shop\mysql\Shop;
use App\Models\shop\mysql\SubShop;
// use Validate\ShopValidate;
// use App\Exception\custom\ShopException;
class ShopController extends Base
{
public function get_shop_listAction()
{
//$params = $this->getRequest()->getRequest();
$where['life_account_id'] = 0;
$subShop = SubShop::getRecord($where);
print_r($subShop);
}
}
\ No newline at end of file
...@@ -3,7 +3,7 @@ application.directory = APP_PATH ...@@ -3,7 +3,7 @@ application.directory = APP_PATH
application.bootstrap = APP_PATH "/Bootstrap.php" application.bootstrap = APP_PATH "/Bootstrap.php"
application.library = APP_PATH"/library" application.library = APP_PATH"/library"
application.library.namespace = "" application.library.namespace = ""
application.modules="Index,Test,Goods" application.modules="Index,Test,Goods,Shop"
appid = "goods" appid = "goods"
;AES密钥 ;AES密钥
......
...@@ -79,7 +79,7 @@ class SocialCreditCertification ...@@ -79,7 +79,7 @@ class SocialCreditCertification
'databaseImageContent' => $base64_image 'databaseImageContent' => $base64_image
]; ];
$result = (new Request())->post(self::ocr_bussiness_url, $post_data, 5000, 'json',[],1); $result = (new Request())->post(self::ocr_bussiness_url, $post_data, 3000, 'json',[],1);
if (isset($result['code'],$result['response']) && $result['code'] === 0 ) { if (isset($result['code'],$result['response']) && $result['code'] === 0 ) {
return $result['response']; return $result['response'];
......
...@@ -8,7 +8,7 @@ class Ksyun ...@@ -8,7 +8,7 @@ class Ksyun
private const jinshan_ak = 'AKLTnATdoXUnR72IDSGgN2WSOQ'; //AccessKey private const jinshan_ak = 'AKLTnATdoXUnR72IDSGgN2WSOQ'; //AccessKey
private const jinshan_sk = 'OMw7UAOkrLVsRevuP44ctAlfzriDzUm9+JvOFoYuiSoLgaLJWi+kjUa+4G3EWXFakQ=='; //SecretKey private const jinshan_sk = 'OMw7UAOkrLVsRevuP44ctAlfzriDzUm9+JvOFoYuiSoLgaLJWi+kjUa+4G3EWXFakQ=='; //SecretKey
private const bp_bucket = 'bp-yidian'; private const bp_bucket = 'bp-yidian';
private const get_down_from_ksyun = 'http://10.103.34.109:8007/auth/url-get'; private const get_down_from_ksyun = 'http://video-stream-service.int.yidian-inc.com/auth/url-get';
/** /**
* 支持批量 * 支持批量
......
...@@ -18,6 +18,6 @@ class XhMongo extends MongoBase ...@@ -18,6 +18,6 @@ class XhMongo extends MongoBase
protected function getCollectionName() protected function getCollectionName()
{ {
return 'xhprof'; return 'results';
} }
} }
\ No newline at end of file
...@@ -9,43 +9,28 @@ class XhProfilerService ...@@ -9,43 +9,28 @@ class XhProfilerService
{ {
private $profiler; private $profiler;
public function __construct($domain) public function __construct()
{ {
// 根据域名读取 配置
$this->profiler = new Profiler([]); $this->profiler = new Profiler([]);
} }
/** /**
* 开启 xhprofiler 分析 * 开启 xhprofiler 分析
* @param $domain
*/ */
public function start($domain): void public function start(): void
{ {
//根据域名选择开不开启 分析
if ($this->judgeSwitch($domain) === false)
{
return ;
}
//开启 分析器,并且初始化 mongodb 实例 //开启 分析器,并且初始化 mongodb 实例
$this->profiler->start(); $this->profiler->start();
} }
/** /**
* 结束分析 并且 根据域名存储到不同的 mongodb collection 中 * 结束分析
* @param $domain * @param $domain
*/ */
public function end($domain): void public function end($domain): void
{ {
//根据域名选择开不开启 分析
if ($this->judgeSwitch($domain) === false)
{
return ;
}
// 结束分析器,生产性能检测数据 // 结束分析器,生产性能检测数据
$profiler_data = $this->profiler->disable(); $profiler_data = $this->profiler->disable();
$profiler_data = $this->dealProfile($profiler_data,$domain); $profiler_data = $this->dealProfile($profiler_data,$domain);
$mongo = XhMongo::getInstance(); $mongo = XhMongo::getInstance();
...@@ -56,7 +41,7 @@ class XhProfilerService ...@@ -56,7 +41,7 @@ class XhProfilerService
private function dealProfile(array $profile,$domain) private function dealProfile(array $profile,$domain)
{ {
$profile['profile'] = $this->encodeProfile($profile['profile']); $profile['profile'] = $this->encodeProfile($profile['profile']);
$profile['env'] = $domain; $profile['domain'] = str_replace('.', '_',$domain);
return $profile; return $profile;
} }
...@@ -73,15 +58,4 @@ class XhProfilerService ...@@ -73,15 +58,4 @@ class XhProfilerService
return $results; return $results;
} }
/**
* 开关决策器
* @param $domain
* @return bool
*/
private function judgeSwitch($domain)
{
// 从 yaconf 获取配置 ,判断当前域名是否要开启
return true;
}
} }
\ No newline at end of file
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
"require": { "require": {
"php": ">=7.2", "php": ">=7.2",
"guzzlehttp/guzzle": "6.3", "guzzlehttp/guzzle": "6.3",
"catfan/medoo": "1.7.10",
"mongodb/mongodb": "1.4.3", "mongodb/mongodb": "1.4.3",
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-exif": "*", "ext-exif": "*",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
namespace Api\PhpUtils\Mysql; namespace Api\PhpUtils\Mysql;
use Medoo\Medoo; use Api\PhpUtils\Mysql\Medoo;
use Api\PhpUtils\Log\FileLog; use Api\PhpUtils\Log\FileLog;
/** /**
...@@ -20,20 +20,20 @@ use Api\PhpUtils\Log\FileLog; ...@@ -20,20 +20,20 @@ use Api\PhpUtils\Log\FileLog;
* return [] 查询结果为空 * return [] 查询结果为空
* return number 插入为lasterInsertId:String 按需自己intval(),更新和删除返回影响条数 * return number 插入为lasterInsertId:String 按需自己intval(),更新和删除返回影响条数
* *
* 5. 根据镜像中php的版本选择使用version1.7.10 版本的Medoo类,不要升级! * 5. 根据镜像中php的版本选择使用version1.7.10 版本的Medoo类, 并进行了改造,去掉了join操作,增加了$options参数;
* @see https://medoo.in (英文网站) * @see https://medoo.in (英文网站)
* @see https://medoo.lvtao.net (中文网站) * @see https://medoo.lvtao.net (中文网站)
*/ */
/** /**
* @method static MysqlBase insert($data) * @method static MysqlBase insert($data, $options)
* @method static MysqlBase update($data, $where) * @method static MysqlBase update($data, $where)
* @method static MysqlBase delete($where) * @method static MysqlBase delete($where)
* @method static MysqlBase select($columns, $where) * @method static MysqlBase select($columns, $where, $options)
* @method static MysqlBase selectMaster($columns, $where) * @method static MysqlBase selectMaster($columns, $where, $options)
* @method static MysqlBase getMaster($columns, $where) * @method static MysqlBase getMaster($columns, $where, $options)
* @method static MysqlBase get($columns, $where) * @method static MysqlBase get($columns, $where, $options)
* @method static MysqlBase count($where) * @method static MysqlBase count($columns, $where)
* @method static MysqlBase action( $callback ) * @method static MysqlBase action( $callback )
*/ */
abstract class MysqlBase abstract class MysqlBase
...@@ -154,6 +154,51 @@ abstract class MysqlBase ...@@ -154,6 +154,51 @@ abstract class MysqlBase
return self::formatResult($method, $arguments); return self::formatResult($method, $arguments);
} }
/**
* selectForUpdate
*
* @return array
*/
public static function selectForUpdate($columns, $where, $options = null)
{
$type = static::WRITE;
self::$dbCurrentConnect = self::$dbConnect[$type] = self::getConnection($type);
self::$sqlResut = self::$dbConnect[$type]->selectForUpdate(static::TABLE_NAME, $columns, $where, $options);
if (!self::catchError('selectForUpdate', [static::TABLE_NAME, $columns, $where, $options])) {
// 如果失败重试一次
self::$dbCurrentConnect = self::$dbConnect[$type] = self::getConnection($type);
self::$sqlResut = self::$dbConnect[$type]->selectForUpdate(static::TABLE_NAME, $columns, $where, $options);
if (!self::catchError('selectForUpdate', [static::TABLE_NAME, $columns, $where, $options])) {
return false;
}
}
return self::$sqlResut;
}
/**
* insertDuplicate
*
* 批量使用:Medoo::raw
* insertDuplicate([['id' => 4,'name' => 'test1'], ['id' => 5,'name' => 'test2']], ['name' => Medoo::raw('VALUES(name)')]);
*
* @return int 单条时返回1insert成功,返回2表示重复数据更新成功
*/
public static function insertDuplicate($data, $duplicate)
{
$type = static::WRITE;
self::$dbCurrentConnect = self::$dbConnect[$type] = self::getConnection($type);
self::$sqlResut = self::$dbConnect[$type]->insertDuplicate(static::TABLE_NAME, $data, $duplicate);
if (!self::catchError('insertDuplicate', [static::TABLE_NAME, $data, $duplicate])) {
// 如果失败重试一次
self::$dbCurrentConnect = self::$dbConnect[$type] = self::getConnection($type);
self::$sqlResut = self::$dbConnect[$type]->insertDuplicate(static::TABLE_NAME, $data, $duplicate);
if (!self::catchError('insertDuplicate', [static::TABLE_NAME, $data, $duplicate])) {
return false;
}
}
return self::formatResult('insertDuplicate', [static::TABLE_NAME, $data, $duplicate]);
}
/** /**
* 获取数据库连接 * 获取数据库连接
* *
...@@ -281,12 +326,6 @@ abstract class MysqlBase ...@@ -281,12 +326,6 @@ abstract class MysqlBase
case 'selectmaster': case 'selectmaster':
case 'get': case 'get':
case 'getmaster': case 'getmaster':
// 不允许用join操作
if (count($arguments) > 2) {
self::$errorInfo = ['validation', 0, "sql exception use join:" . $method . "-" . json_encode($arguments)];
FileLog::error("sql exception use join:" . $method . "-" . json_encode($arguments));
return false;
}
// 读取没有limit的强制加limit // 读取没有limit的强制加limit
if (!isset($arguments[1]['LIMIT'])) { if (!isset($arguments[1]['LIMIT'])) {
$arguments[1]['LIMIT'] = 5000; $arguments[1]['LIMIT'] = 5000;
...@@ -294,15 +333,6 @@ abstract class MysqlBase ...@@ -294,15 +333,6 @@ abstract class MysqlBase
} }
break; break;
case 'count':
// 不允许用join操作
if (count($arguments) > 1) {
self::$errorInfo = ['validation', 0, "sql exception use join:" . $method . "-" . json_encode($arguments)];
FileLog::error("sql exception use join:" . $method . "-" . json_encode($arguments));
return false;
}
break;
default: default:
break; break;
} }
...@@ -361,12 +391,18 @@ abstract class MysqlBase ...@@ -361,12 +391,18 @@ abstract class MysqlBase
// PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。 // PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。
return self::$sqlResut->rowCount(); return self::$sqlResut->rowCount();
} }
// 单条插入返回最后插入行的ID // 对于无AUTO_INCREMENT的表,可以指定返回影响的行数的参数
if (isset($arguments[2]['rowCount']) && $arguments[2]['rowCount']) {
// PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。
return self::$sqlResut->rowCount();
}
// 单条默认插入返回最后插入行的lastInsertId,如果无AUTO_INCREMENT字段,返回NULL
return call_user_func_array([self::$dbCurrentConnect, 'id'], []); return call_user_func_array([self::$dbCurrentConnect, 'id'], []);
break; break;
case 'update': case 'update':
case 'delete': case 'delete':
case 'insertduplicate':
// 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。 // 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。
return self::$sqlResut->rowCount(); return self::$sqlResut->rowCount();
break; break;
......
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: websitelog.proto
namespace GPBMetadata;
class Websitelog
{
public static $is_initialized = false;
public static function initOnce() {
$pool = \Google\Protobuf\Internal\DescriptorPool::getGeneratedPool();
if (static::$is_initialized == true) {
return;
}
$pool->internalAddGeneratedFile(hex2bin(
"0a800c0a10776562736974656c6f672e70726f746f121367617465776179" .
"2e646174612e7261776c6f6722f2010a03554944120f0a07757365725f69" .
"64180120012803122b0a047479706518022001280e321d2e676174657761" .
"792e646174612e7261776c6f672e5549442e5479706512110a0964657669" .
"63655f6964180320012809120c0a047775696418052001280912110a0972" .
"656665725f75696418072001280912110a09757365725f6e616d65180820" .
"01280912110a09757365725f7479706518092001280912110a096275636b" .
"65745f6964180a2001280312180a1069735f73757065725f6163636f756e" .
"74180b20012808120b0a03776964180c2001280922190a04547970651208" .
"0a044e4f4e45100012070a034d4435100122b0040a074170704d65746112" .
"0e0a066170705f696418012001280912140a0c6275696c645f6e756d6265" .
"7218022001280912160a0e62756e646c655f76657273696f6e1803200128" .
"09121c0a14646973747269627574696f6e5f6368616e6e656c1804200128" .
"09120c0a04696d6569180620012809120e0a066d61635f69641807200128" .
"0912120a0a616e64726f69645f6964180820012809121e0a16616e64726f" .
"69645f6164766572746973696e675f696418092001280912130a0b646576" .
"6963655f6e616d65180b20012809120d0a056272616e64180c2001280912" .
"160a0e73637265656e5f64656e73697479180e2001280912170a0f70726f" .
"636573736f725f636f756e74180f2001280512170a0f706879736963616c" .
"5f6d656d6f727918102001280912140a0c73637265656e5f776964746818" .
"112001280512160a0e73637265656e745f68656967687418122001280512" .
"2f0a08706c6174666f726d18152001280e321d2e676174657761792e6461" .
"74612e7261776c6f672e506c6174666f726d12180a106f7065726174696e" .
"675f73797374656d18162001280912100a086c616e677561676518172001" .
"2809120f0a07636f756e747279181820012809120f0a07746d5f7a6f6e65" .
"18192001280912150a0d696f735f6a61696c627265616b18332001280812" .
"220a1a696f735f6164766572746973696e675f6964656e74696669657218" .
"382001280912210a19696f735f6964656e7469666965725f666f725f7665" .
"6e646f7218392001280922e5040a0a576562736974654c6f6712170a0f72" .
"6571756573745f74696d655f6d7318012001280312180a10726573706f6e" .
"73655f74696d655f6d73180220012803120e0a06616374696f6e18032001" .
"280912140a0c726563765f74696d655f6d7318062001280312130a0b7265" .
"6d6f74655f686f737418082001280912100a08636865636b73756d180920" .
"012809122e0a086170705f6d65746118652001280b321c2e676174657761" .
"792e646174612e7261776c6f672e4170704d65746112130a0b6170695f76" .
"657273696f6e18662001280912250a0375696418672001280b32182e6761" .
"74657761792e646174612e7261776c6f672e554944120d0a057265716964" .
"186820012809120a0a02697018692001280912100a086e65745f74797065" .
"186a20012809124d0a0f726571756573745f636f6e7465787418c7012003" .
"280b32332e676174657761792e646174612e7261776c6f672e5765627369" .
"74654c6f672e52657175657374436f6e74657874456e747279120f0a0673" .
"746174757318c90120012809120d0a04636f646518ca0120012805120f0a" .
"06726561736f6e18cb0120012809124f0a10726573706f6e73655f636f6e" .
"7465787418ab022003280b32342e676174657761792e646174612e726177" .
"6c6f672e576562736974654c6f672e526573706f6e7365436f6e74657874" .
"456e7472791a350a1352657175657374436f6e74657874456e747279120b" .
"0a036b6579180120012809120d0a0576616c75651802200128093a023801" .
"1a360a14526573706f6e7365436f6e74657874456e747279120b0a036b65" .
"79180120012809120d0a0576616c75651802200128093a0238012a3f0a08" .
"506c6174666f726d12070a03494f531000120b0a07416e64726f69641001" .
"12070a03576562100212140a07556e6b6e6f776e10ffffffffffffffffff" .
"01620670726f746f33"
));
static::$is_initialized = true;
}
}
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: websitelog.proto
namespace Gateway\Data\Rawlog;
/**
* 描述app的平台
*
* Protobuf type <code>gateway.data.rawlog.Platform</code>
*/
class Platform
{
/**
*ios  
*
* Generated from protobuf enum <code>IOS = 0;</code>
*/
const IOS = 0;
/**
* android
*
* Generated from protobuf enum <code>Android = 1;</code>
*/
const Android = 1;
/**
* web
*
* Generated from protobuf enum <code>Web = 2;</code>
*/
const Web = 2;
/**
*unknown
*
* Generated from protobuf enum <code>Unknown = -1;</code>
*/
const Unknown = -1;
}
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: websitelog.proto
namespace Gateway\Data\Rawlog;
use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;
/**
* Generated from protobuf message <code>gateway.data.rawlog.UID</code>
*/
class UID extends \Google\Protobuf\Internal\Message
{
/**
* 用户ID
*
* Generated from protobuf field <code>int64 user_id = 1;</code>
*/
private $user_id = 0;
/**
* 如果是MD5,此时device_id和mac_id都是MD5过的
*
* Generated from protobuf field <code>.gateway.data.rawlog.UID.Type type = 2;</code>
*/
private $type = 0;
/**
* based imei on android or idfa on ios
*
* Generated from protobuf field <code>string device_id = 3;</code>
*/
private $device_id = '';
/**
* Web user id, 只有Web用户才有
*
* Generated from protobuf field <code>string wuid = 5;</code>
*/
private $wuid = '';
/**
* web user, 来源的uid
*
* Generated from protobuf field <code>string refer_uid = 7;</code>
*/
private $refer_uid = '';
/**
* 用户名
*
* Generated from protobuf field <code>string user_name = 8;</code>
*/
private $user_name = '';
/**
* 是否登录(游客)
*
* Generated from protobuf field <code>string user_type = 9;</code>
*/
private $user_type = '';
/**
* 用户bucket id
*
* Generated from protobuf field <code>int64 bucket_id = 10;</code>
*/
private $bucket_id = 0;
/**
* 是否超级公共账号
*
* Generated from protobuf field <code>bool is_super_account = 11;</code>
*/
private $is_super_account = false;
/**
*微信相关的MD5ID
*
* Generated from protobuf field <code>string wid = 12;</code>
*/
private $wid = '';
/**
* Constructor.
*
* @param array $data {
* Optional. Data for populating the Message object.
*
* @type int|string $user_id
* 用户ID
* @type int $type
* 如果是MD5,此时device_id和mac_id都是MD5过的
* @type string $device_id
* based imei on android or idfa on ios
* @type string $wuid
* Web user id, 只有Web用户才有
* @type string $refer_uid
* web user, 来源的uid
* @type string $user_name
* 用户名
* @type string $user_type
* 是否登录(游客)
* @type int|string $bucket_id
* 用户bucket id
* @type bool $is_super_account
* 是否超级公共账号
* @type string $wid
* 微信相关的MD5ID
* }
*/
public function __construct($data = NULL) {
\GPBMetadata\Websitelog::initOnce();
parent::__construct($data);
}
/**
* 用户ID
*
* Generated from protobuf field <code>int64 user_id = 1;</code>
* @return int|string
*/
public function getUserId()
{
return $this->user_id;
}
/**
* 用户ID
*
* Generated from protobuf field <code>int64 user_id = 1;</code>
* @param int|string $var
* @return $this
*/
public function setUserId($var)
{
GPBUtil::checkInt64($var);
$this->user_id = $var;
return $this;
}
/**
* 如果是MD5,此时device_id和mac_id都是MD5过的
*
* Generated from protobuf field <code>.gateway.data.rawlog.UID.Type type = 2;</code>
* @return int
*/
public function getType()
{
return $this->type;
}
/**
* 如果是MD5,此时device_id和mac_id都是MD5过的
*
* Generated from protobuf field <code>.gateway.data.rawlog.UID.Type type = 2;</code>
* @param int $var
* @return $this
*/
public function setType($var)
{
GPBUtil::checkEnum($var, \Gateway\Data\Rawlog\UID_Type::class);
$this->type = $var;
return $this;
}
/**
* based imei on android or idfa on ios
*
* Generated from protobuf field <code>string device_id = 3;</code>
* @return string
*/
public function getDeviceId()
{
return $this->device_id;
}
/**
* based imei on android or idfa on ios
*
* Generated from protobuf field <code>string device_id = 3;</code>
* @param string $var
* @return $this
*/
public function setDeviceId($var)
{
GPBUtil::checkString($var, True);
$this->device_id = $var;
return $this;
}
/**
* Web user id, 只有Web用户才有
*
* Generated from protobuf field <code>string wuid = 5;</code>
* @return string
*/
public function getWuid()
{
return $this->wuid;
}
/**
* Web user id, 只有Web用户才有
*
* Generated from protobuf field <code>string wuid = 5;</code>
* @param string $var
* @return $this
*/
public function setWuid($var)
{
GPBUtil::checkString($var, True);
$this->wuid = $var;
return $this;
}
/**
* web user, 来源的uid
*
* Generated from protobuf field <code>string refer_uid = 7;</code>
* @return string
*/
public function getReferUid()
{
return $this->refer_uid;
}
/**
* web user, 来源的uid
*
* Generated from protobuf field <code>string refer_uid = 7;</code>
* @param string $var
* @return $this
*/
public function setReferUid($var)
{
GPBUtil::checkString($var, True);
$this->refer_uid = $var;
return $this;
}
/**
* 用户名
*
* Generated from protobuf field <code>string user_name = 8;</code>
* @return string
*/
public function getUserName()
{
return $this->user_name;
}
/**
* 用户名
*
* Generated from protobuf field <code>string user_name = 8;</code>
* @param string $var
* @return $this
*/
public function setUserName($var)
{
GPBUtil::checkString($var, True);
$this->user_name = $var;
return $this;
}
/**
* 是否登录(游客)
*
* Generated from protobuf field <code>string user_type = 9;</code>
* @return string
*/
public function getUserType()
{
return $this->user_type;
}
/**
* 是否登录(游客)
*
* Generated from protobuf field <code>string user_type = 9;</code>
* @param string $var
* @return $this
*/
public function setUserType($var)
{
GPBUtil::checkString($var, True);
$this->user_type = $var;
return $this;
}
/**
* 用户bucket id
*
* Generated from protobuf field <code>int64 bucket_id = 10;</code>
* @return int|string
*/
public function getBucketId()
{
return $this->bucket_id;
}
/**
* 用户bucket id
*
* Generated from protobuf field <code>int64 bucket_id = 10;</code>
* @param int|string $var
* @return $this
*/
public function setBucketId($var)
{
GPBUtil::checkInt64($var);
$this->bucket_id = $var;
return $this;
}
/**
* 是否超级公共账号
*
* Generated from protobuf field <code>bool is_super_account = 11;</code>
* @return bool
*/
public function getIsSuperAccount()
{
return $this->is_super_account;
}
/**
* 是否超级公共账号
*
* Generated from protobuf field <code>bool is_super_account = 11;</code>
* @param bool $var
* @return $this
*/
public function setIsSuperAccount($var)
{
GPBUtil::checkBool($var);
$this->is_super_account = $var;
return $this;
}
/**
*微信相关的MD5ID
*
* Generated from protobuf field <code>string wid = 12;</code>
* @return string
*/
public function getWid()
{
return $this->wid;
}
/**
*微信相关的MD5ID
*
* Generated from protobuf field <code>string wid = 12;</code>
* @param string $var
* @return $this
*/
public function setWid($var)
{
GPBUtil::checkString($var, True);
$this->wid = $var;
return $this;
}
}
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: websitelog.proto
namespace Gateway\Data\Rawlog\UID;
/**
* 出于安全的考虑,部分手机上使用的是md5过的imei号;
*
* Protobuf type <code>gateway.data.rawlog.UID.Type</code>
*/
class Type
{
/**
* Generated from protobuf enum <code>NONE = 0;</code>
*/
const NONE = 0;
/**
* Generated from protobuf enum <code>MD5 = 1;</code>
*/
const MD5 = 1;
}
// Adding a class alias for backwards compatibility with the previous class name.
class_alias(Type::class, \Gateway\Data\Rawlog\UID_Type::class);
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: websitelog.proto
namespace Gateway\Data\Rawlog;
if (false) {
/**
* This class is deprecated. Use Gateway\Data\Rawlog\UID\Type instead.
* @deprecated
*/
class UID_Type {}
}
class_exists(UID\Type::class);
@trigger_error('Gateway\Data\Rawlog\UID_Type is deprecated and will be removed in the next major release. Use Gateway\Data\Rawlog\UID\Type instead', E_USER_DEPRECATED);
<?php
namespace Api\PhpUtils\Protobuf\WebsiteLog;
use Api\PhpUtils\Http\Request;
use Gateway\Data\Rawlog\AppMeta;
use Gateway\Data\Rawlog\UID;
use Gateway\Data\Rawlog\WebsiteLog;
use http\Exception;
use Api\PhpUtils\Log;
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Gateway/Data/Rawlog/WebsiteLog.php';
//require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Yidian/Data/Rawlog/UID_Type.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Gateway/Data/Rawlog/UID.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Gateway/Data/Rawlog/UID/Type.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Gateway/Data/Rawlog/AppMeta.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Gateway/Data/Rawlog/Platform.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'GPBMetadata/Websitelog.php';
class WebLog
{
private const BP_WEBSITE_PB_LOG_URL = 'http://online-feedback-receiver.ha.in.yidian.com:9088/OnlineFeedbackReceiver/ProtobufStreamHandler?topic=rawlog_bp_api_bp_gateway_prod';
/**
* 日志格式转pb格式
*
* @param array $log
* @return string
*/
public function log2pb(array $log) : string
{
try
{
//message对象
$uid = new UID();
$app_meta = new AppMeta();
$website_log = new WebsiteLog();
$action = $this->formatAction($_SERVER['action']);
$platform_list = array(
"IOS" => 0,
"Android" => 1,
"Web" => 2,
"Unknown" => -1
); //平台列表
//app_meta属性赋值
//App相关配置
$app_meta->setAppId($log['request']['appid'] ?? ''); //appid
$app_meta->setBundleVersion($log['request']['clientInfo']['userInfo']['appVersion'] ?? $log['request']['log']['bundle_version'] ?? '');
$app_meta->setDistributionChannel($log['request']['distribution'] ?? '');
$app_meta->setImei($log['request']['clientInfo']['userInfo']['imei'] ?? $log['request']['imei'] ?? '');
$app_meta->setMacId($log['request']['clientInfo']['userInfo']['mac'] ?? $log['request']['mac'] ?? '');
$app_meta->setAndroidId($log['request']['clientInfo']['userInfo']['androidId'] ?? $log['request']['androidId'] ?? '');
//设备相关的元数据
$app_meta->setDeviceName($log['request']['clientInfo']['deviceInfo']['deviceName'] ?? $log['request']['deviceName'] ?? $log['request']['clientInfo']['deviceInfo']['model'] ?? '');
$app_meta->setBrand($log['request']['clientInfo']['deviceInfo']['brand'] ?? $log['request']['deviceBrand'] ?? '');
$app_meta->setScreenDensity($log['request']['clientInfo']['deviceInfo']['screenDensity'] ?? '');
if (isset($log['request']['clientInfo']['deviceInfo']['screenWidth']) && is_numeric($log['request']['clientInfo']['deviceInfo']['screenWidth']))
{
$app_meta->setScreenWidth((int)$log['request']['clientInfo']['deviceInfo']['screenWidth']);
}
if (isset($log['request']['clientInfo']['deviceInfo']['screenHeight']) && is_numeric($log['request']['clientInfo']['deviceInfo']['screenHeight']))
{
$app_meta->setScreentHeight((int)$log['request']['clientInfo']['deviceInfo']['screenHeight']);
}
//操作系统相关配置
if (isset($log['request']['platform']) && is_numeric($log['request']['platform']) && in_array($log['request']['platform'], $platform_list))
{
$app_meta->setPlatform((int)$log['request']['platform']);
}
else
{
$app_meta->setPlatform(-1);
}
$app_meta->setOperatingSystem($log['request']['clientInfo']['deviceInfo']['androidVersion'] ?? $log['request']['clientInfo']['deviceInfo']['iosVersion'] ?? '');
$app_meta->setLanguage($log['request']['clientInfo']['userInfo']['language'] ?? '');
$app_meta->setCountry($log['request']['clientInfo']['userInfo']['country'] ?? '');
//iOS相关的信息
$app_meta->setIosAdvertisingIdentifier($log['request']['clientInfo']['userInfo']['ifa'] ?? $log['request']['clientInfo']['app_info']['ifa'] ?? '');
$app_meta->setIosIdentifierForVendor($log['request']['clientInfo']['app_info']['idfv'] ?? '');
//uid属性赋值
if (isset($log['request']['userid']) && is_numeric($log['request']['userid']))
{
$uid->setUserId((int)$log['request']['userid']); //userid
}
$uid->setDeviceId($log['request']['deviceid'] ?? $log['request']['clientInfo']['app_info']['device_id'] ?? '');
$uid->setUserName($log['request']['username'] ?? '');
$uid->setUserType($log['request']['usertype'] ?? '');
if (isset($log['request']['log']['bucket_id']) && is_numeric($log['request']['bucket_id']))
{
$uid->setBucketId($log['request']['log']['bucket_id']);
}
$uid->setIsSuperAccount($log['request']['is_super_account'] ?? false);
$uid->setWid($log['request']['wid'] ?? '');
//website_log属性赋值
$website_log->setRequestTimeMs(isset($log['request_time']) ? floor($log['request_time'] * 1000) : 0);
$website_log->setResponseTimeMs(isset($log['response_time']) ? floor($log['response_time'] * 1000) : 0);
$website_log->setAction($action);
$website_log->setRecvTimeMs(isset($log['recv_time']) ? floor($log['recv_time'] * 1000) : 0);
$website_log->setRemoteHost($log['request']['clientInfo']['userInfo']['ip'] ?? '');
$website_log->setChecksum($log['request']['checksum'] ?? '');
//request内容
$website_log->setAppMeta($app_meta);
$website_log->setApiVersion($log['request']['version'] ?? '');
$website_log->setUid($uid);
$website_log->setReqid($log['request']['requestId'] ?? $log['request']['reqid'] ?? '');
//response内容
$website_log->setStatus($log['response']['status'] ?? 'success');
$website_log->setCode($log['response']['code'] ?? 0);
$website_log->setReason($log['response']['reason'] ?? '');
return $website_log->serializeToString(); //序列化
} catch (Exception $e)
{
return '';
}
}
/**
* 格式化action: (1)将 // 替换成 /; (2)去掉开头的/; (3)/ 和 - 替换为 _; (4)转换为小写
*
* @param $action
* @return mixed
*/
private function formatAction($action)
{
$tmp1 = str_replace('//', '/', $action);
$tmp2 = strtolower(substr($tmp1, 1, strlen($tmp1) - 1));
return str_replace(array('/', '-'), '_', $tmp2);
}
/**
* 发送pb 日志
* @param $result
* @param int $percentage
* @param bool $send_request
* @param string $action
*/
public function sendPbLog($result,$percentage = 100, $send_request = true, $action = '')
{
if ($percentage >= 100 || $_SERVER['REQUEST_TIME'] % 100 < $percentage)
{
$log = array(
'request_time' => $_SERVER['REQUEST_TIME_FLOAT'],
'response_time' => microtime(true)
);
$log['action'] = $action ?? explode('?', $_SERVER['REQUEST_URI'])[0];
if ($send_request === true)
{
$log['request'] = array_merge( $_GET, $_POST );
} else if ($send_request !== false) {
$log['request'] = $send_request;
}
$log['response']['status'] = $result['status']??'';
$log['response']['code'] = $result['code']??'';
$log['response']['reason'] = $result['reason']??'';
if( !empty($GLOBALS['related_url']) )
{
$log['response']['related_url'] = $GLOBALS['related_url'];
}
if (extension_loaded('protobuf'))
{
$data = $this->log2pb($log);
if (!empty($data))
{
$bp_website_pb_log_url = self::BP_WEBSITE_PB_LOG_URL;
$res = (new Request())->post($bp_website_pb_log_url, $data, 50, ['Content-Type: binary/octet-stream'], [], 1);
}
}
}
}
}
\ No newline at end of file
syntax = "proto3";
package gateway.data.rawlog;
// 描述app的平台
enum Platform {
IOS = 0; //ios  
Android = 1; // android
Web = 2; // web
Unknown = -1; //unknown
};
message UID {
enum Type { // 出于安全的考虑,部分手机上使用的是md5过的imei号;
NONE = 0;
MD5 = 1;
};
int64 user_id = 1; // 用户ID
Type type = 2; // 如果是MD5,此时device_id和mac_id都是MD5过的
string device_id = 3; // based imei on android or idfa on ios
string wuid = 5; // Web user id, 只有Web用户才有
string refer_uid = 7; // web user, 来源的uid
string user_name = 8; // 用户名
string user_type = 9; // 是否登录(游客)
int64 bucket_id = 10; // 用户bucket id
bool is_super_account = 11; // 是否超级公共账号
string wid = 12; //微信相关的MD5ID
};
message AppMeta {
// App相关配置
string app_id = 1;
string build_number = 2; // 发布号是后台区分版本的唯一id,不同平台,不同版本都需要保证全局的唯一性
string bundle_version = 3; // app_version
string distribution_channel = 4; // 分发渠道,是否修改为枚举?
string imei = 6; // md5后的imei号
string mac_id = 7; // MacID
string android_id = 8; // 安卓系统用户id
string android_advertising_id = 9; // 安卓系统用户谷歌广告id 201805 安卓4660版本新增
// 设备相关的元数据
string device_name = 11; // 设备名
string brand = 12; // 机器的品牌
//optional string screen_resolution = 13; // 屏幕分辨率
string screen_density = 14; // 屏幕密度,每英寸有多少个显示点
int32 processor_count = 15; // 处理器核数
string physical_memory = 16; // 机器内存, 单位MB
int32 screen_width = 17; // 屏幕的宽度像素点
int32 screent_height = 18; // 屏幕的高度像素点
// 操作系统相关配置
Platform platform = 21; // 平台
string operating_system = 22; // 操作系统名
string language = 23; // 语言
string country = 24; // 国家
string tm_zone = 25; // 时区
// iOS相关的信息
bool ios_jailbreak = 51; // 是否越狱
string ios_advertising_identifier = 56; // 唯一区分设备号idfa
string ios_identifier_for_vendor = 57; // idfv
};
message WebsiteLog {
int64 request_time_ms = 1; // 请求时间,精确到毫秒
int64 response_time_ms = 2; // 请求的响应时间,精确到毫秒
string action = 3; // 事件标识
int64 recv_time_ms = 6; // 日志接收时间
string remote_host = 8; // 前端ip?
string checksum = 9; // 日志唯一性标识?
// 以下为 request 的内容
AppMeta app_meta = 101; // app客户端的meta信息
string api_version = 102; // API 版本号
UID uid = 103; // 用户相关的ID, 唯一标识用户
string reqid = 104; // (来自API组的需求) request_id
string ip = 105; //request.ip / request.clientInfo.deviceInfo.ip
string net_type = 106; //request.net
// 其它常用 request 参数待补充
map<string, string> request_context = 199; // 其它不常用的来自请求的输入参数
// 以下为 response 的内容
string status = 201; // 请求是否成功的状态标识
int32 code = 202; // 具体状态code
string reason = 203; // 错误原因
// 其它常用 response 参数待补充
map<string, string> response_context = 299; // 其它不常用的来自响应的输入参数
};
\ No newline at end of file
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php'; require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd::getLoader(); return ComposerAutoloaderInit48fd9e88279ffd9162a19bdedd5d5a0a::getLoader();
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
\ No newline at end of file
# These are supported funding model platforms
open_collective: medoo
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**Information**
- Version of Medoo:
- Type of Database (MySQL, MSSQL, SQLite...):
- System (Liunx\Windows\Mac):
**Detail Code**
The detail code causes the problem.
**Expected output**
A clear and concise description of what output you expected.
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
*.pubxml
*.publishproj
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
#############
## Windows detritus
#############
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac crap
.DS_Store
#############
## Python
#############
*.py[cod]
# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
\ No newline at end of file
MIT License
Copyright (c) 2019 Angel Lai
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.
<p align="center">
<a href="https://medoo.in" target="_blank"><img src="https://cloud.githubusercontent.com/assets/1467904/19835326/ca62bc36-9ebd-11e6-8b37-7240d76319cd.png"></a>
</p>
<p align="center">
<a href="https://packagist.org/packages/catfan/medoo"><img alt="Total Downloads" src="https://poser.pugx.org/catfan/medoo/downloads"></a>
<a href="https://packagist.org/packages/catfan/medoo"><img alt="Latest Stable Version" src="https://poser.pugx.org/catfan/medoo/v/stable"></a>
<a href="https://packagist.org/packages/catfan/medoo"><img alt="License" src="https://poser.pugx.org/catfan/medoo/license"></a>
<a href="https://opencollective.com/medoo"><img alt="Backers on Open Collective" src="https://opencollective.com/Medoo/backers/badge.svg"></a>
<a href="https://opencollective.com/medoo"><img alt="Sponsors on Open Collective" src="https://opencollective.com/Medoo/sponsors/badge.svg"> </a>
</p>
> The lightweight PHP database framework to accelerate development
## Features
* **Lightweight** - Less than 100 KB, portable with only one file
* **Easy** - Extremely easy to learn and use, friendly construction
* **Powerful** - Supports various common and complex SQL queries, data mapping, and prevent SQL injection
* **Compatible** - Supports all SQL databases, including MySQL, MSSQL, SQLite, MariaDB, PostgreSQL, Sybase, Oracle and more
* **Friendly** - Works well with every PHP frameworks, like Laravel, Codeigniter, Yii, Slim, and framework which supports singleton extension or composer
* **Free** - Under MIT license, you can use it anywhere whatever you want
## Requirement
PHP 5.4+ and PDO extension installed, recommend PHP 7.0+
## Get Started
### Install via composer
Add Medoo to composer.json configuration file.
```
$ composer require catfan/medoo
```
And update the composer
```
$ composer update
```
```php
// If you installed via composer, just use this code to require autoloader on the top of your projects.
require 'vendor/autoload.php';
// Using Medoo namespace
use Medoo\Medoo;
// Initialize
$database = new Medoo([
'database_type' => 'mysql',
'database_name' => 'name',
'server' => 'localhost',
'username' => 'your_username',
'password' => 'your_password'
]);
// Enjoy
$database->insert('account', [
'user_name' => 'foo',
'email' => 'foo@bar.com'
]);
$data = $database->select('account', [
'user_name',
'email'
], [
'user_id' => 50
]);
echo json_encode($data);
// [
// {
// "user_name" : "foo",
// "email" : "foo@bar.com",
// }
// ]
```
## Contribution Guides
For most of time, Medoo is using develop branch for adding feature and fixing bug, and the branch will be merged into master branch while releasing a public version. For contribution, submit your code to the develop branch, and start a pull request into it.
On develop branch, each commits are started with `[fix]`, `[feature]` or `[update]` tag to indicate the change.
Keep it simple and keep it clear.
## License
Medoo is under the MIT license.
## Links
* Official website: [https://medoo.in](https://medoo.in)
* Documentation: [https://medoo.in/doc](https://medoo.in/doc)
\ No newline at end of file
{
"name": "catfan/medoo",
"type": "framework",
"description": "The lightweight PHP database framework to accelerate development",
"keywords": ["database", "database library", "lightweight", "PHP framework", "SQL", "MySQL", "MSSQL", "SQLite", "PostgreSQL", "MariaDB", "Oracle"],
"homepage": "https://medoo.in",
"license": "MIT",
"support": {
"issues": "https://github.com/catfan/Medoo/issues",
"source": "https://github.com/catfan/Medoo"
},
"authors": [
{"name": "Angel Lai", "email": "angel@catfan.me"}
],
"require": {
"php": ">=5.4",
"ext-pdo": "*"
},
"suggest": {
"ext-pdo_mysql": "For MySQL or MariaDB database",
"ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform",
"ext-pdo_dblib": "For MSSQL or Sybase database on Linux/UNIX platform",
"ext-pdo_oci": "For Oracle database",
"ext-pdo_oci8": "For Oracle version 8 database",
"ext-pdo_pqsql": "For PostgreSQL database",
"ext-pdo_sqlite": "For SQLite database"
},
"autoload": {
"psr-4": {
"Medoo\\": "/src"
}
}
}
\ No newline at end of file
...@@ -32,7 +32,7 @@ private static $installed = array ( ...@@ -32,7 +32,7 @@ private static $installed = array (
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '84f303fe12b697c338160072ef8b501de5add893', 'reference' => '84928268a3b67ce3c8f83c4e655aa5d05654c37b',
'name' => 'yidian/yaf_demo', 'name' => 'yidian/yaf_demo',
), ),
'versions' => 'versions' =>
...@@ -45,7 +45,7 @@ private static $installed = array ( ...@@ -45,7 +45,7 @@ private static $installed = array (
array ( array (
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'd844921e94a920bf28fc1427851edbec63d78501', 'reference' => '95cfa288e4777d976f53787882e5c4ae9e7592e6',
), ),
'api/php_utils' => 'api/php_utils' =>
array ( array (
...@@ -55,16 +55,7 @@ private static $installed = array ( ...@@ -55,16 +55,7 @@ private static $installed = array (
array ( array (
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'c0936cac091daea86ee8a035a53d3da53c4a6f6e', 'reference' => '65546514336724128e7047b4a7704608f0400e80',
),
'catfan/medoo' =>
array (
'pretty_version' => 'v1.7.10',
'version' => '1.7.10.0',
'aliases' =>
array (
),
'reference' => '2d675f73e23f63bbaeb9a8aa33318659a3d3c32f',
), ),
'elasticsearch/elasticsearch' => 'elasticsearch/elasticsearch' =>
array ( array (
...@@ -193,7 +184,7 @@ private static $installed = array ( ...@@ -193,7 +184,7 @@ private static $installed = array (
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '84f303fe12b697c338160072ef8b501de5add893', 'reference' => '84928268a3b67ce3c8f83c4e655aa5d05654c37b',
), ),
), ),
); );
......
...@@ -55,8 +55,10 @@ return array( ...@@ -55,8 +55,10 @@ return array(
'Api\\PhpUtils\\Message\\Email' => $vendorDir . '/api/php_utils/src/Message/Email.php', 'Api\\PhpUtils\\Message\\Email' => $vendorDir . '/api/php_utils/src/Message/Email.php',
'Api\\PhpUtils\\Mon\\MonUtil' => $vendorDir . '/api/php_utils/src/Mon/MonUtil.php', 'Api\\PhpUtils\\Mon\\MonUtil' => $vendorDir . '/api/php_utils/src/Mon/MonUtil.php',
'Api\\PhpUtils\\Mongo\\MongoBase' => $vendorDir . '/api/php_utils/src/Mongo/MongoBase.php', 'Api\\PhpUtils\\Mongo\\MongoBase' => $vendorDir . '/api/php_utils/src/Mongo/MongoBase.php',
'Api\\PhpUtils\\Mysql\\Medoo' => $vendorDir . '/api/php_utils/src/Mysql/Medoo.php',
'Api\\PhpUtils\\Mysql\\MysqlBase' => $vendorDir . '/api/php_utils/src/Mysql/MysqlBase.php', 'Api\\PhpUtils\\Mysql\\MysqlBase' => $vendorDir . '/api/php_utils/src/Mysql/MysqlBase.php',
'Api\\PhpUtils\\Mysql\\MysqlClusterBase' => $vendorDir . '/api/php_utils/src/Mysql/MysqlClusterBase.php', 'Api\\PhpUtils\\Mysql\\MysqlClusterBase' => $vendorDir . '/api/php_utils/src/Mysql/MysqlClusterBase.php',
'Api\\PhpUtils\\Protobuf\\WebsiteLog\\WebLog' => $vendorDir . '/api/php_utils/src/Protobuf/WebsiteLog/WebLog.php',
'Api\\PhpUtils\\RabbitMq\\DelayRabbitMq' => $vendorDir . '/api/php_utils/src/RabbitMq/DelayRabbitMq.php', 'Api\\PhpUtils\\RabbitMq\\DelayRabbitMq' => $vendorDir . '/api/php_utils/src/RabbitMq/DelayRabbitMq.php',
'Api\\PhpUtils\\Redis\\RedisUtil' => $vendorDir . '/api/php_utils/src/Redis/RedisUtil.php', 'Api\\PhpUtils\\Redis\\RedisUtil' => $vendorDir . '/api/php_utils/src/Redis/RedisUtil.php',
'Api\\PhpUtils\\Validate\\Validate' => $vendorDir . '/api/php_utils/src/Validate/Validate.php', 'Api\\PhpUtils\\Validate\\Validate' => $vendorDir . '/api/php_utils/src/Validate/Validate.php',
...@@ -84,6 +86,8 @@ return array( ...@@ -84,6 +86,8 @@ return array(
'App\\Models\\goods\\mysql\\GoodsSpu' => $baseDir . '/application/models/goods/mysql/GoodsSpu.php', 'App\\Models\\goods\\mysql\\GoodsSpu' => $baseDir . '/application/models/goods/mysql/GoodsSpu.php',
'App\\Models\\goods\\mysql\\InventoryOperationRecord' => $baseDir . '/application/models/goods/mysql/InventoryOperationRecord.php', 'App\\Models\\goods\\mysql\\InventoryOperationRecord' => $baseDir . '/application/models/goods/mysql/InventoryOperationRecord.php',
'App\\Models\\goods\\mysql\\Shop' => $baseDir . '/application/models/goods/mysql/Shop.php', 'App\\Models\\goods\\mysql\\Shop' => $baseDir . '/application/models/goods/mysql/Shop.php',
'App\\Models\\shop\\mysql\\Shop' => $baseDir . '/application/models/shop/mysql/Shop.php',
'App\\Models\\shop\\mysql\\SubShop' => $baseDir . '/application/models/shop/mysql/SubShop.php',
'App\\Plugins\\Hook' => $baseDir . '/application/plugins/Hook.php', 'App\\Plugins\\Hook' => $baseDir . '/application/plugins/Hook.php',
'App\\Services\\demo\\ElasticService' => $baseDir . '/application/services/demo/ElasticService.php', 'App\\Services\\demo\\ElasticService' => $baseDir . '/application/services/demo/ElasticService.php',
'App\\Services\\demo\\MongoService' => $baseDir . '/application/services/demo/MongoService.php', 'App\\Services\\demo\\MongoService' => $baseDir . '/application/services/demo/MongoService.php',
...@@ -650,7 +654,6 @@ return array( ...@@ -650,7 +654,6 @@ return array(
'GuzzleHttp\\Stream\\Utils' => $vendorDir . '/ezimuel/guzzlestreams/src/Utils.php', 'GuzzleHttp\\Stream\\Utils' => $vendorDir . '/ezimuel/guzzlestreams/src/Utils.php',
'GuzzleHttp\\TransferStats' => $vendorDir . '/guzzlehttp/guzzle/src/TransferStats.php', 'GuzzleHttp\\TransferStats' => $vendorDir . '/guzzlehttp/guzzle/src/TransferStats.php',
'GuzzleHttp\\UriTemplate' => $vendorDir . '/guzzlehttp/guzzle/src/UriTemplate.php', 'GuzzleHttp\\UriTemplate' => $vendorDir . '/guzzlehttp/guzzle/src/UriTemplate.php',
'Medoo\\Medoo' => $vendorDir . '/catfan/medoo/src/Medoo.php',
'MongoDB\\BulkWriteResult' => $vendorDir . '/mongodb/mongodb/src/BulkWriteResult.php', 'MongoDB\\BulkWriteResult' => $vendorDir . '/mongodb/mongodb/src/BulkWriteResult.php',
'MongoDB\\ChangeStream' => $vendorDir . '/mongodb/mongodb/src/ChangeStream.php', 'MongoDB\\ChangeStream' => $vendorDir . '/mongodb/mongodb/src/ChangeStream.php',
'MongoDB\\Client' => $vendorDir . '/mongodb/mongodb/src/Client.php', 'MongoDB\\Client' => $vendorDir . '/mongodb/mongodb/src/Client.php',
......
...@@ -10,7 +10,7 @@ return array( ...@@ -10,7 +10,7 @@ return array(
'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php', 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'8592c7b0947d8a0965a9e8c3d16f9c24' => $vendorDir . '/elasticsearch/elasticsearch/src/autoload.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'3a37ebac017bc098e9a86b35401e7a68' => $vendorDir . '/mongodb/mongodb/src/functions.php', '3a37ebac017bc098e9a86b35401e7a68' => $vendorDir . '/mongodb/mongodb/src/functions.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'8592c7b0947d8a0965a9e8c3d16f9c24' => $vendorDir . '/elasticsearch/elasticsearch/src/autoload.php',
); );
...@@ -11,7 +11,6 @@ return array( ...@@ -11,7 +11,6 @@ return array(
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'MongoDB\\' => array($vendorDir . '/mongodb/mongodb/src'), 'MongoDB\\' => array($vendorDir . '/mongodb/mongodb/src'),
'Medoo\\' => array($vendorDir . '/catfan/medoo/src'),
'GuzzleHttp\\Stream\\' => array($vendorDir . '/ezimuel/guzzlestreams/src'), 'GuzzleHttp\\Stream\\' => array($vendorDir . '/ezimuel/guzzlestreams/src'),
'GuzzleHttp\\Ring\\' => array($vendorDir . '/ezimuel/ringphp/src'), 'GuzzleHttp\\Ring\\' => array($vendorDir . '/ezimuel/ringphp/src'),
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer // autoload_real.php @generated by Composer
class ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd class ComposerAutoloaderInit48fd9e88279ffd9162a19bdedd5d5a0a
{ {
private static $loader; private static $loader;
...@@ -24,15 +24,15 @@ class ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -24,15 +24,15 @@ class ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd
require __DIR__ . '/platform_check.php'; require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInit48fd9e88279ffd9162a19bdedd5d5a0a', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInit48fd9e88279ffd9162a19bdedd5d5a0a', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) { if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php'; require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd::getInitializer($loader)); call_user_func(\Composer\Autoload\ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a::getInitializer($loader));
} else { } else {
$map = require __DIR__ . '/autoload_namespaces.php'; $map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) { foreach ($map as $namespace => $path) {
...@@ -53,19 +53,19 @@ class ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -53,19 +53,19 @@ class ComposerAutoloaderInit1ac03c60750dc59c6c21518ecbd0a3fd
$loader->register(true); $loader->register(true);
if ($useStaticLoader) { if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd::$files; $includeFiles = Composer\Autoload\ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a::$files;
} else { } else {
$includeFiles = require __DIR__ . '/autoload_files.php'; $includeFiles = require __DIR__ . '/autoload_files.php';
} }
foreach ($includeFiles as $fileIdentifier => $file) { foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire1ac03c60750dc59c6c21518ecbd0a3fd($fileIdentifier, $file); composerRequire48fd9e88279ffd9162a19bdedd5d5a0a($fileIdentifier, $file);
} }
return $loader; return $loader;
} }
} }
function composerRequire1ac03c60750dc59c6c21518ecbd0a3fd($fileIdentifier, $file) function composerRequire48fd9e88279ffd9162a19bdedd5d5a0a($fileIdentifier, $file)
{ {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file; require $file;
......
...@@ -4,16 +4,16 @@ ...@@ -4,16 +4,16 @@
namespace Composer\Autoload; namespace Composer\Autoload;
class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd class ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a
{ {
public static $files = array ( public static $files = array (
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'8592c7b0947d8a0965a9e8c3d16f9c24' => __DIR__ . '/..' . '/elasticsearch/elasticsearch/src/autoload.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'3a37ebac017bc098e9a86b35401e7a68' => __DIR__ . '/..' . '/mongodb/mongodb/src/functions.php', '3a37ebac017bc098e9a86b35401e7a68' => __DIR__ . '/..' . '/mongodb/mongodb/src/functions.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'8592c7b0947d8a0965a9e8c3d16f9c24' => __DIR__ . '/..' . '/elasticsearch/elasticsearch/src/autoload.php',
); );
public static $prefixLengthsPsr4 = array ( public static $prefixLengthsPsr4 = array (
...@@ -33,7 +33,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -33,7 +33,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
'M' => 'M' =>
array ( array (
'MongoDB\\' => 8, 'MongoDB\\' => 8,
'Medoo\\' => 6,
), ),
'G' => 'G' =>
array ( array (
...@@ -84,10 +83,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -84,10 +83,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
array ( array (
0 => __DIR__ . '/..' . '/mongodb/mongodb/src', 0 => __DIR__ . '/..' . '/mongodb/mongodb/src',
), ),
'Medoo\\' =>
array (
0 => __DIR__ . '/..' . '/catfan/medoo/src',
),
'GuzzleHttp\\Stream\\' => 'GuzzleHttp\\Stream\\' =>
array ( array (
0 => __DIR__ . '/..' . '/ezimuel/guzzlestreams/src', 0 => __DIR__ . '/..' . '/ezimuel/guzzlestreams/src',
...@@ -196,8 +191,10 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -196,8 +191,10 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
'Api\\PhpUtils\\Message\\Email' => __DIR__ . '/..' . '/api/php_utils/src/Message/Email.php', 'Api\\PhpUtils\\Message\\Email' => __DIR__ . '/..' . '/api/php_utils/src/Message/Email.php',
'Api\\PhpUtils\\Mon\\MonUtil' => __DIR__ . '/..' . '/api/php_utils/src/Mon/MonUtil.php', 'Api\\PhpUtils\\Mon\\MonUtil' => __DIR__ . '/..' . '/api/php_utils/src/Mon/MonUtil.php',
'Api\\PhpUtils\\Mongo\\MongoBase' => __DIR__ . '/..' . '/api/php_utils/src/Mongo/MongoBase.php', 'Api\\PhpUtils\\Mongo\\MongoBase' => __DIR__ . '/..' . '/api/php_utils/src/Mongo/MongoBase.php',
'Api\\PhpUtils\\Mysql\\Medoo' => __DIR__ . '/..' . '/api/php_utils/src/Mysql/Medoo.php',
'Api\\PhpUtils\\Mysql\\MysqlBase' => __DIR__ . '/..' . '/api/php_utils/src/Mysql/MysqlBase.php', 'Api\\PhpUtils\\Mysql\\MysqlBase' => __DIR__ . '/..' . '/api/php_utils/src/Mysql/MysqlBase.php',
'Api\\PhpUtils\\Mysql\\MysqlClusterBase' => __DIR__ . '/..' . '/api/php_utils/src/Mysql/MysqlClusterBase.php', 'Api\\PhpUtils\\Mysql\\MysqlClusterBase' => __DIR__ . '/..' . '/api/php_utils/src/Mysql/MysqlClusterBase.php',
'Api\\PhpUtils\\Protobuf\\WebsiteLog\\WebLog' => __DIR__ . '/..' . '/api/php_utils/src/Protobuf/WebsiteLog/WebLog.php',
'Api\\PhpUtils\\RabbitMq\\DelayRabbitMq' => __DIR__ . '/..' . '/api/php_utils/src/RabbitMq/DelayRabbitMq.php', 'Api\\PhpUtils\\RabbitMq\\DelayRabbitMq' => __DIR__ . '/..' . '/api/php_utils/src/RabbitMq/DelayRabbitMq.php',
'Api\\PhpUtils\\Redis\\RedisUtil' => __DIR__ . '/..' . '/api/php_utils/src/Redis/RedisUtil.php', 'Api\\PhpUtils\\Redis\\RedisUtil' => __DIR__ . '/..' . '/api/php_utils/src/Redis/RedisUtil.php',
'Api\\PhpUtils\\Validate\\Validate' => __DIR__ . '/..' . '/api/php_utils/src/Validate/Validate.php', 'Api\\PhpUtils\\Validate\\Validate' => __DIR__ . '/..' . '/api/php_utils/src/Validate/Validate.php',
...@@ -225,6 +222,8 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -225,6 +222,8 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
'App\\Models\\goods\\mysql\\GoodsSpu' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsSpu.php', 'App\\Models\\goods\\mysql\\GoodsSpu' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsSpu.php',
'App\\Models\\goods\\mysql\\InventoryOperationRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/InventoryOperationRecord.php', 'App\\Models\\goods\\mysql\\InventoryOperationRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/InventoryOperationRecord.php',
'App\\Models\\goods\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/goods/mysql/Shop.php', 'App\\Models\\goods\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/goods/mysql/Shop.php',
'App\\Models\\shop\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/shop/mysql/Shop.php',
'App\\Models\\shop\\mysql\\SubShop' => __DIR__ . '/../..' . '/application/models/shop/mysql/SubShop.php',
'App\\Plugins\\Hook' => __DIR__ . '/../..' . '/application/plugins/Hook.php', 'App\\Plugins\\Hook' => __DIR__ . '/../..' . '/application/plugins/Hook.php',
'App\\Services\\demo\\ElasticService' => __DIR__ . '/../..' . '/application/services/demo/ElasticService.php', 'App\\Services\\demo\\ElasticService' => __DIR__ . '/../..' . '/application/services/demo/ElasticService.php',
'App\\Services\\demo\\MongoService' => __DIR__ . '/../..' . '/application/services/demo/MongoService.php', 'App\\Services\\demo\\MongoService' => __DIR__ . '/../..' . '/application/services/demo/MongoService.php',
...@@ -791,7 +790,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -791,7 +790,6 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
'GuzzleHttp\\Stream\\Utils' => __DIR__ . '/..' . '/ezimuel/guzzlestreams/src/Utils.php', 'GuzzleHttp\\Stream\\Utils' => __DIR__ . '/..' . '/ezimuel/guzzlestreams/src/Utils.php',
'GuzzleHttp\\TransferStats' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/TransferStats.php', 'GuzzleHttp\\TransferStats' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/TransferStats.php',
'GuzzleHttp\\UriTemplate' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/UriTemplate.php', 'GuzzleHttp\\UriTemplate' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/UriTemplate.php',
'Medoo\\Medoo' => __DIR__ . '/..' . '/catfan/medoo/src/Medoo.php',
'MongoDB\\BulkWriteResult' => __DIR__ . '/..' . '/mongodb/mongodb/src/BulkWriteResult.php', 'MongoDB\\BulkWriteResult' => __DIR__ . '/..' . '/mongodb/mongodb/src/BulkWriteResult.php',
'MongoDB\\ChangeStream' => __DIR__ . '/..' . '/mongodb/mongodb/src/ChangeStream.php', 'MongoDB\\ChangeStream' => __DIR__ . '/..' . '/mongodb/mongodb/src/ChangeStream.php',
'MongoDB\\Client' => __DIR__ . '/..' . '/mongodb/mongodb/src/Client.php', 'MongoDB\\Client' => __DIR__ . '/..' . '/mongodb/mongodb/src/Client.php',
...@@ -921,9 +919,9 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd ...@@ -921,9 +919,9 @@ class ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd
public static function getInitializer(ClassLoader $loader) public static function getInitializer(ClassLoader $loader)
{ {
return \Closure::bind(function () use ($loader) { return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd::$prefixLengthsPsr4; $loader->prefixLengthsPsr4 = ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd::$prefixDirsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit1ac03c60750dc59c6c21518ecbd0a3fd::$classMap; $loader->classMap = ComposerStaticInit48fd9e88279ffd9162a19bdedd5d5a0a::$classMap;
}, null, ClassLoader::class); }, null, ClassLoader::class);
} }
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.yidian-inc.com:8021/bp/php_services.git", "url": "https://git.yidian-inc.com:8021/bp/php_services.git",
"reference": "d844921e94a920bf28fc1427851edbec63d78501" "reference": "95cfa288e4777d976f53787882e5c4ae9e7592e6"
}, },
"require": { "require": {
"api/php_utils": "dev-master", "api/php_utils": "dev-master",
"perftools/php-profiler": "^0.18.0", "perftools/php-profiler": "^0.18.0",
"php": ">=7.2" "php": ">=7.2"
}, },
"time": "2021-06-16T09:09:58+00:00", "time": "2021-06-16T11:04:11+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"installation-source": "source", "installation-source": "source",
...@@ -33,10 +33,9 @@ ...@@ -33,10 +33,9 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.yidian-inc.com:8021/bp/php_utils.git", "url": "https://git.yidian-inc.com:8021/bp/php_utils.git",
"reference": "c0936cac091daea86ee8a035a53d3da53c4a6f6e" "reference": "65546514336724128e7047b4a7704608f0400e80"
}, },
"require": { "require": {
"catfan/medoo": "1.7.10",
"elasticsearch/elasticsearch": "~7.0", "elasticsearch/elasticsearch": "~7.0",
"ext-ctype": "*", "ext-ctype": "*",
"ext-exif": "*", "ext-exif": "*",
...@@ -46,7 +45,7 @@ ...@@ -46,7 +45,7 @@
"mongodb/mongodb": "1.4.3", "mongodb/mongodb": "1.4.3",
"php": ">=7.2" "php": ">=7.2"
}, },
"time": "2021-06-16T10:54:38+00:00", "time": "2021-06-16T11:07:28+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"installation-source": "source", "installation-source": "source",
...@@ -58,73 +57,6 @@ ...@@ -58,73 +57,6 @@
"description": "bp api php_utils", "description": "bp api php_utils",
"install-path": "../api/php_utils" "install-path": "../api/php_utils"
}, },
{
"name": "catfan/medoo",
"version": "v1.7.10",
"version_normalized": "1.7.10.0",
"source": {
"type": "git",
"url": "https://github.com/catfan/Medoo.git",
"reference": "2d675f73e23f63bbaeb9a8aa33318659a3d3c32f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/catfan/Medoo/zipball/2d675f73e23f63bbaeb9a8aa33318659a3d3c32f",
"reference": "2d675f73e23f63bbaeb9a8aa33318659a3d3c32f",
"shasum": ""
},
"require": {
"ext-pdo": "*",
"php": ">=5.4"
},
"suggest": {
"ext-pdo_dblib": "For MSSQL or Sybase database on Linux/UNIX platform",
"ext-pdo_mysql": "For MySQL or MariaDB database",
"ext-pdo_oci": "For Oracle database",
"ext-pdo_oci8": "For Oracle version 8 database",
"ext-pdo_pqsql": "For PostgreSQL database",
"ext-pdo_sqlite": "For SQLite database",
"ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform"
},
"time": "2020-02-11T08:20:42+00:00",
"type": "framework",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Medoo\\": "/src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Angel Lai",
"email": "angel@catfan.me"
}
],
"description": "The lightweight PHP database framework to accelerate development",
"homepage": "https://medoo.in",
"keywords": [
"database",
"database library",
"lightweight",
"mariadb",
"mssql",
"mysql",
"oracle",
"php framework",
"postgresql",
"sql",
"sqlite"
],
"support": {
"issues": "https://github.com/catfan/Medoo/issues",
"source": "https://github.com/catfan/Medoo"
},
"install-path": "../catfan/medoo"
},
{ {
"name": "elasticsearch/elasticsearch", "name": "elasticsearch/elasticsearch",
"version": "7.11.x-dev", "version": "7.11.x-dev",
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '84f303fe12b697c338160072ef8b501de5add893', 'reference' => '84928268a3b67ce3c8f83c4e655aa5d05654c37b',
'name' => 'yidian/yaf_demo', 'name' => 'yidian/yaf_demo',
), ),
'versions' => 'versions' =>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
array ( array (
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'd844921e94a920bf28fc1427851edbec63d78501', 'reference' => '95cfa288e4777d976f53787882e5c4ae9e7592e6',
), ),
'api/php_utils' => 'api/php_utils' =>
array ( array (
...@@ -29,16 +29,7 @@ ...@@ -29,16 +29,7 @@
array ( array (
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'c0936cac091daea86ee8a035a53d3da53c4a6f6e', 'reference' => '65546514336724128e7047b4a7704608f0400e80',
),
'catfan/medoo' =>
array (
'pretty_version' => 'v1.7.10',
'version' => '1.7.10.0',
'aliases' =>
array (
),
'reference' => '2d675f73e23f63bbaeb9a8aa33318659a3d3c32f',
), ),
'elasticsearch/elasticsearch' => 'elasticsearch/elasticsearch' =>
array ( array (
...@@ -167,7 +158,7 @@ ...@@ -167,7 +158,7 @@
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '84f303fe12b697c338160072ef8b501de5add893', 'reference' => '84928268a3b67ce3c8f83c4e655aa5d05654c37b',
), ),
), ),
); );
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment