jeidison / named-query
Package para armazenar SQL's
Installs: 2 161
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.2|^8.0
- ext-dom: *
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^8.1
README
Instalação
Instalação via composer
$ composer require jeidison/named-query
Publicando as configurações
$ php artisan vendor:publish --provider="Jeidison\NamedQuery\Providers\NamedQueryServiceProvider"
Esse comando publicará a configuração config/named-query.php
do pacote para ser customizado.
return [ 'path-sql' => database_path('named-query/queries'), 'type' => Jeidison\NamedQuery\Enums\TypeFile::XML, 'type-bind' => Jeidison\NamedQuery\Enums\TypeBind::TWO_POINTS, ];
Adicionando uma SQL em arquivo XML
<query name="find_tab1"> SELECT * FROM TAB1 WHERE PAR1 = ?1 </query>
Adicionando uma SQL em arquivo PHP
CONST find_tab1 = " SELECT * FROM TAB1 WHERE PAR1 = :PAR1 ";
Atenção
- Se você configurar o type no arquivo
config/named-query.php
comoJeidison\NamedQuery\Enums\TypeFile::XML
todas SQLs devem estar em arquivo XML. - Se você configurar o type no arquivo
config/named-query.php
comoJeidison\NamedQuery\Enums\TypeFile::PHP
todas SQLs devem estar em arquivo PHP.
Executando uma SQL
NamedQuery::executeNamedQuery('find_tab1', 'nfe/named-querys', [ 'PAR1' => $numero, ]);
Desta forma a SQL será executada e o resultado da consulta será do tipo stdClass. Caso queira um tipo diferente, execute da sequinte forma:
Executando uma SQL com ResultClass
NamedQuery::executeNamedQuery('find_nfe_by_key', 'nfe/named-querys', [ 'numero' => $numero, 'cnpj_emitente' => $cnpjEmitente, 'serie' => $serie, 'tpamb' => $tpAmb, 'mod' => $mod, ], NFe::class);
Debugando a SQL construída
NamedQuery::executeNamedQuery('find_nfe_by_key', 'nfe/named-querys', [ 'numero' => $numero, 'cnpj_emitente' => $cnpjEmitente, 'serie' => $serie, 'tpamb' => $tpAmb, 'mod' => $mod, ], NFe::class, true);