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