lbreme/lexepa-sql
Composer 安装命令:
composer require lbreme/lexepa-sql
包简介
Library for lexing and parsing a SQL INSERT statement
README 文档
README
Library for lexing and parsing a SQL INSERT query.
Installing Lexepa-Sql
First, get Composer, if you don't already use it.
Next, run the following command inside the directory of your project:
composer require lbreme/lexepa-sql
How does it work?
The Lexepa-Sql library analyzes any file that contains one or more INSERT SQL queries. During the analysis a series of callback functions are called to which the elements that constitute the query are passed as arguments.
Let's clarify with an example, which is contained in the file class-example-sql.php, which to make it work is to copy in the root of your project, along with the test file insert.sql:
/*
We create a class derived from the Lexepa_Sql_Abstract class, which implements all the
callback functions that will be called by the analysis of the SQL INSERT query
*/
class Example_Sql extends Lexepa_Sql_Abstract
{
/**
* Begin of the SQL INSERT query.
*
* @param int $begin_offset Offset of the SQL INSERT query.
*/
public function begin_insert( $begin_offset )
{
echo 'Offset of the SQL INSERT query: ' . $begin_offset . '<br />';
}
/**
* Table name found
*
* @param string $table_name Table name.
* @param int $offset Offset of the table name.
*/
public function table_name( $table_name, $offset )
{
echo 'Table name: ' . $table_name . '<br />';
}
/**
* Field name found
*
* @param string $field_name Field name.
* @param int $offset Offset of the field name.
*/
public function field_name( $field_name, $offset )
{
echo 'Field name: ' . $field_name . '<br />';
}
/**
* Field value found
*
* @param string $field_value Field value.
* @param int $offset Offset of the field value.
*/
public function field_value( $field_value, $offset )
{
echo 'Field value: ' . $field_value . '<br />';
}
/**
* End of the SQL INSERT query
*
* @param int $end_offset Offset of the end of the SQL INSERT query.
*/
public function end_insert( $end_offset )
{
echo 'Offset of the end of the SQL INSERT query: ' . $end_offset . '<br />';
}
/**
* End of the file parsing
*
* @param bool $offset Offset of the end of the file parsing.
*/
public function end_parsing( $offset )
{
echo 'Offset of the end of the file parsing: ' . $offset . '<br />';
}
/**
* Set error parsing the file.
*
* @param string $error Error parsing the file.
*/
public function set_error( $error )
{
echo $error . '<br />';
}
}
$example_sql = new Example_Sql();
/*
We instantiate the Lexepa-Sql library class, passing as arguments the $example_sql object
containing the callback functions and the file name to be parsed
*/
$lexepa_sql = new Lexepa_Sql( $example_sql, 'insert.sql' );
// Let's start the analysis
$lexepa_sql->parse_sql();
The result of this example is as follows:
Offset of the begin of the SQL INSERT query: 0 Table name: wp_options Field value: 1 Field value: siteurl Field value: https://www.mysite.com/ Field value: yes Field value: 2 Field value: home Field value: https://www.mysite.com/ Field value: yes Field value: 3 Field value: blogname Field value: My site Field value: yes Field value: 4 Field value: blogdescription Field value: My revised site Field value: yes Offset of the end of the SQL INSERT query: 206 Offset of the begin of the SQL INSERT query: 208 Table name: wp_postmeta Field value: 71 Field value: 33 Field value: _edit_last Field value: 1 Field value: 72 Field value: 33 Field value: adventurous-header-image Field value: default Field value: 73 Field value: 33 Field value: adventurous-sidebarlayout Field value: default Field value: 74 Field value: 33 Field value: adventurous-featured-image Field value: default Field value: 75 Field value: 33 Field value: _edit_lock Field value: 1600100291:1 Field value: 76 Field value: 35 Field value: _edit_last Field value: 1 Offset of the end of the SQL INSERT query: 489 Offset of the end of the file parsing: 491
The callback functions implemented by the Lexepa_Sql_Abstract class are contained and documented in the interface file class-lexepa-sql-interface.php
lbreme/lexepa-sql 适用场景与选型建议
lbreme/lexepa-sql 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 05 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「sql」 「parser」 「lexer」 「insert」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lbreme/lexepa-sql 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lbreme/lexepa-sql 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lbreme/lexepa-sql 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.
A simple library for make Lexer and Parsers to build a language
Query filtering in your frontend
An MT940 bank statement parser for PHP
Database/ORM-agnostic query construction helper
Laravel integration for the jsonapi.org parser
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-05-19