Download the PHP package jheferson-br/tquery without Composer
On this page you can find all versions of the php package jheferson-br/tquery. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jheferson-br/tquery
More information about jheferson-br/tquery
Files in jheferson-br/tquery
Package tquery
Short Description Lib em PHP para execução de arquivos SQL. Uso restrito para projetos Adianti
License mit
Informations about the package tquery
TQuery
Sobre o Componente
A classe TQuery foi desenvolvida para trazer para o Adianti framework uma abordagem diferente na montagem e execução das querys.
Com ela é possível executar arquivos '.sql' sendo possível separar as instruções SQL do código PHP.
Com isso temos uma melhor legibilidade do código SQL.
Instalação
Como se trata de um pacote composer, basta usar o comando:
Exemplo de Uso
Para entendermos melhor como a classe funciona, veja este exemplo simples.
Suponhamos que precisamos executar a seguinte instrução no banco de dados para limpar as tabelas do sistema:
Que está salvo na pasta app/querys/ do projeto, no arquivo LimpaTabelas.sql.
Usando a classe TQuery, ficaria assim:
Note que a classe TQuery precisa de uma transação aberta com o TTransaction para ser executada, mantendo o padrão do Adianti Framework.
Além disso todos os comandos executados com o metodo execute() serão logadas no sistema de logs do Adianti.
A TQuery também é capaz de excutar querys de consultas, como joins complexos. Muitas vezes utilizar uma View como é recomentando para o framework se torna algo oneroso de dar manutenção.
Pensando nisso foi desenvolvido o metodo load() que pode receber um TCriteria nativo do framework como parâmetro, mantendo a compatibilidade com o framework.
Imagine a necessidade de trazer um join complexo como este:
Note que nas condições da query existe um mnemônico denominado {{WHERE}}. Este mnemônico é padrão no TQuery e seu objetivo é definir o local onde será incluido as condições WHERE da consulta.
Veja como ficaria o codigo em php:
Note que a TQuery se comporta de forma semelhante a TRepository
Tambem é possível passar parâmetros para as querys usando mnemônicos customizados. Isso pode ser útil quando queremos enviar um trecho de código SQL para o TQuery incluir na query.
Veja:
Note que a query em questão, possui varios mnemônicos customizados como {{poa_cod}} e {{cnpj}} Para enviar para a TQuery os dados para seu mineomonico customizado, basta enviar como segundo parametro no construtor do objeto, um array associativo com as chaves mantendo o mesmo nome do mineomonico.
Veja um exemplo para a execução da query anterior:
Tambem é possível setar os valores dos mnemônicos atraves do método setParams quer recebe como parâmetro o vetor com os valores. Veja como ficaria: