jeidison / named-query
该软件包已废弃且不再维护。未建议替代软件包。
存储SQL的软件包
0.8.0
2021-09-13 20:16 UTC
Requires
- php: ^7.2|^8.0
- ext-dom: *
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^8.1
README
安装
通过Composer安装
$ composer require jeidison/named-query
发布配置
$ php artisan vendor:publish --provider="Jeidison\NamedQuery\Providers\NamedQueryServiceProvider"
此命令将发布软件包的 config/named-query.php
配置,以便进行自定义。
return [ 'path-sql' => database_path('named-query/queries'), 'type' => Jeidison\NamedQuery\Enums\TypeFile::XML, 'type-bind' => Jeidison\NamedQuery\Enums\TypeBind::TWO_POINTS, ];
在XML文件中添加SQL
<query name="find_tab1"> SELECT * FROM TAB1 WHERE PAR1 = ?1 </query>
在PHP文件中添加SQL
CONST find_tab1 = " SELECT * FROM TAB1 WHERE PAR1 = :PAR1 ";
注意
- 如果您将文件类型配置为
config/named-query.php
中的Jeidison\NamedQuery\Enums\TypeFile::XML
,则所有SQL必须存储在XML文件中。 - 如果您将文件类型配置为
config/named-query.php
中的Jeidison\NamedQuery\Enums\TypeFile::PHP
,则所有SQL必须存储在PHP文件中。
执行SQL
NamedQuery::executeNamedQuery('find_tab1', 'nfe/named-querys', [ 'PAR1' => $numero, ]);
这样执行SQL,查询结果将返回stdClass类型。如果需要不同类型的结果,请按以下方式执行
使用ResultClass执行SQL
NamedQuery::executeNamedQuery('find_nfe_by_key', 'nfe/named-querys', [ 'numero' => $numero, 'cnpj_emitente' => $cnpjEmitente, 'serie' => $serie, 'tpamb' => $tpAmb, 'mod' => $mod, ], NFe::class);
调试构建的SQL
NamedQuery::executeNamedQuery('find_nfe_by_key', 'nfe/named-querys', [ 'numero' => $numero, 'cnpj_emitente' => $cnpjEmitente, 'serie' => $serie, 'tpamb' => $tpAmb, 'mod' => $mod, ], NFe::class, true);