agrandesr / sql-custom-action
这个自定义操作是对 Agile Router 库的实现,用于简化快速的 SQL 调用。
dev-master
2023-04-09 20:47 UTC
This package is auto-updated.
Last update: 2024-09-09 23:44:13 UTC
README
本软件包是 Agrandesr/agile-router (v1.0+) 的扩展。
这个自定义操作是 PDO 在 Agile Router 上对 mysql 的首次简易实现,以便通过 Agile Router 的自定义操作以非常简单的方式发送电子邮件。
安装
首先我们需要引入这个包
composer require agrandesr/sql-custom-action
接下来,在 run 方法之前需要添加到 Router 中。
require './vendor/autoload.php'; use Agrandesr\Router; $router = new Router(); $router->addCustomAction('mail','App\\CustomActions\\SQLAction'); $router->run();
然后你需要修改 .env 文件,添加你的 SQL 连接数据。
SQL_TYPE=mysql SQL_HOST=localhost SQL_USER=root SQL_PASS=****** SQL_DTBS=test SQL_PORT=3306 SQL_CHAR=UTF8
现在你可以在你的路由文件中使用这个新操作。
{ "sql":{ "query":{ "execute":[ { "name":"user", "type":"sql-action", "content":{ "sql":"SELECT * FROM users WHERE id like ?", "params":[ "1" ] } }, { "type":"json", "content":{ "body":{ "user":"||user.0.mail||" } } } ] } } }
这样就完成了,你可以创建一个用于发送电子邮件的端点。
内容参数
如示例所示,动作 "PhpMailer" 有以下参数
- sql['required']:这是你想要执行的 SQL 语句。你可以遵循 PDO 进行查询。
- values['optional']:这是添加查询值的位置。
环境变量
你可以使用 envFlag 为一个项目设置多个 SQL 连接。envFlag 在你的 envFlag 键的中间添加 endFlag 的值。例如
{ "sql":{ "GET":{ "execute":[ { "type":"sql", "content":{ "envFlag":"CALIFORNIA", "sql":"SELECT * FROM id=?", "values":[1] } }, { "type":"sql", "content":{ "envFlag":"TEXAS", "sql":"SELECT * FROM id=:id", "values":{ "id":1 } } } ] } } }
对于最后的示例,你必须完成其他环境变量
SQL_CALIFORNIA_TYPE=mysql SQL_CALIFORNIA_HOST=localhost SQL_CALIFORNIA_USER=root SQL_CALIFORNIA_PASS=******* SQL_CALIFORNIA_DTBS=test SQL_CALIFORNIA_PORT=3306 SQL_CALIFORNIA_CHAR=UTF8 SQL_TEXAS__TYPE=mysql SQL_TEXAS__HOST=localhost SQL_TEXAS__USER=root SQL_TEXAS__PASS=****** SQL_TEXAS__DTBS=test SQL_TEXAS__PORT=3306 SQL_TEXAS__CHAR=UTF8