Se você quer reduzir os números de linhas e evitar muitas querys e conexões com o banco de dados você pode utilizar essa classe CRUD para facilitar sua vida.
- Fácil de usar
- Mini sistema de log
- Reaproveitar conexão com o Banco de dados
Obtenha a classe:
composer require pluscrud/crud
Aqui irei descrever todo o funcionamento da classe e como utilizar todos os métodos que contém disponíveis no momento.
Você pode iniciar a classe de 3 maneiras distintas, quem decide é você! ;)
Você pode utilizar sua classe de conexão com o banco de dados e passar a conexão atual para o CRUD.
$pdo = 'Seu objeto de conexão com o banco de dados';
$crud = \PlusCrud\PlusCrud::getInstance($pdo);
Você pode utilizar define ou array.
define('CONFIG', ['localhost', 'teste', 'root', 'senha' ]);
$crud = \PlusCrud\PlusCrud::getInstance(null, CONFIG);
------------------------------------------------------------------------------
$config = array('localhost', 'teste', 'root', 'senha');
$crud = \PlusCrud\PlusCrud::getInstance(null, $config);
Se você não quiser utilizar define ou array, utilize os métodos internos do CRUD.
$crud = \PlusCrud\PlusCrud::getInstance();
$crud->setDBHost('localhost');
$crud->setDBName('teste');
$crud->setDBUser('root');
$crud->setDBPass('senha');
$crud->run();
- Se você utilizar o modo 3 você deve chamar o
$crud->run()
para carregar a conexão com o banco de dados.
No modo 2 e 3 você pode checar se a conexão com o banco de dados foi iniciada, apenas chame $crud->log()
. Você deverá receber algo como:
Conexão com o banco de dados:
Inicializada | ::1 | 11-02-2018 21:34:14
Agora que sabemos como iniciar a conexão com o banco de dados vamos aprender a utilizar os métodos.
A criação de registros com essa classe é bastante fácil, basta utilizar $crud->insert()
.
$crud->insert('usuario', array('nome' => 'Jeconias', 'email' => 'jeconiass2009@hotmail.com', 'senha' => 'senha'));
-
Primeiro parâmetro: Insira o nome da sua tabela;
-
Segundo parâmetro: Insira uma array com as chaves iguais a coluna da sua tabela ou uma array multidimensional. Exemplo array simples:
array('nome' => 'Jeconias', 'email' => 'jeconiass2009@hotmail.com', 'senha' => 'senha');
Exemplo array multidimensional:
$arr = array( 0 => array( 'nome' => 'José', 'data' => '2018-03-22'), 1 => array( 'nome' => 'Jeconias', 'data' => '2018-03-25') );
-
Terceiro parâmetro: Você pode criptografar o valor passando o nome da chave que corresponde ao valor desejado. Padrão: senha;
$crud->inserir
retorna a quantidade de linha inseridas.
$crud->select('usuario', array('nome', 'email'), array('email' => 'jeconiass2009@hotmail.com'), null, array('nome' => 'ASC'));
-
Primeiro parâmetro: Nome da tabela;
-
Segundo parâmetro: Uma array com os valores que deseja receber. Use
array(*)
para tudo; -
Terceiro parâmetro: Uma array que faz papel de where, ou seja, no exemplo a cima eu irei receber todos os registros que tenha o email correspondente. Você pode utilizar mais de um valor, ex:
array('nome' => Jeconias, 'Cidade' => 'Natal')
;- Nas versões acima de 1.0.8 você pode definir o tipo de condição para cada valor.
Exemplo:
array('versao' => '2.2', 'joker' => array('>'))
Você pode inserir mais "Jokers":
Outro exemplo:
array('versao' => '2.2' 'tipo' => 'stable', 'joker' => array('>', '='))
PS.:
- Mantenha a sequência das condições iguais as das seleções;
- Sempre utiliza o nome "joker" para setar as condições;
- O valor padrão para WHERE é "=" se você não utilizar o joker.
-
Quarto parâmetro: Utilize um valor inteiro para definir o limite de registros selecionados;
-
Quinto parâmetro: Uma array para classificar o conjunto de resultados em ordem ascendente ou decrescente. Use DESC ou ASC.
Se a Classe não suporta (ainda e.e) sua SQL, você pode montar uma para não abandonar ou ter que usar duas classes para CRUD.
$crud->selectManual('SELECT * FROM registrodehoras WHERE data BETWEEN :inicio AND :fim', array('inicio' => '2018-02-01', 'fim' => '2018-03-05'));
$crud->select()
e$crud->selectManual
retornam os valores selecionados.
$crud->update('usuario', array('email' => 'exemplo@hotmail.com', 'nome' => 'exemplo'), array('id' => 5));
- Primeiro parâmetro: Nome da tabela;
- Segundo parâmetro: Uma array com os valores que deseja atualizar.
- Terceiro parâmetro: Defina qual registro irá atualizar. where.
$crud->update
retorna a quantidade de linhas afetadas.
$crud->delete('usuario', array('id' => 3));
- Primeiro parâmetro: Nome da tabela;
- Segundo parâmetro: Uma array com os valores que deseja remover.
- Obs: Se você NÃO passar o segundo parâmetro OU passar
array('*')
, TUDO será apagado da tabela.
$crud->delete
retorna o número de linhas removidas.
Você pode utilizar um arquivo PHP externo para alterar o idioma padrão dos logs. O arquivo deve ter o seguinte nome: class.pluscrud.lang.SIGLA_DO_IDIOMA.php. Exemplo: class.pluscrud.lang.en.php
Basta chamar o método $crud->setLanguage
e utilizar dessa forma:
$crud->setLanguage('en', 'Diretorio do arquivo');
Se você deseja fazer uma tradução, basta utilizar o arquivo padrão como base. Ele está localizado aqui.
Use $crud->log()
para receber as ações e erros gerados.
Método | Ação | Retorno |
---|---|---|
setLanguage() | Alterar idioma dos registros | boolean |
setDBHost() | Inserir nome do host/servidor | nothing |
setDBName() | Nome do banco de dados. | nothing |
setDBUser() | Nome do usuário do banco de dados. | nothing |
setDBPass() | Senha do banco de dados. | nothing |
run() | Iniciar a conexão do banco de dados (necessário apenas quando utilizar o modo 3 de conexão com o DB). | nothing |
insert() | Inserir dados | A quantidade de linhas inseridas |
select() | Selecionar dados | Todos os dados selecionados |
selectManual() | Selecionar dados com SQL manual | Os dados selecionados |
update() | Atualizar dados | Quantidade de linhas alteradas |
delete() | Remover linhas | A quantida de linhas afetadas |
connStatus() | Verifica se a conexão com o banco de dados existe | boolean |
log() | nothing | Todo o log do objeto |
- 1.0.1
Corrigido problema na instância do CRUD e PDO.
- 1.0.2
Adicionado mais comentários na classe.
- 1.0.3
Correção do método hash.
- 1.0.4
Suporte para múltiplos "inserts".
- 1.0.5
Suporte para SQL montada.
- 1.0.6
Comentários e pequenas correções;
Melhorado o sistema de logs.
- 1.0.7
Correção para múltiplos inserts.
- 1.0.8
Agora é possível utilizar WHERE com outras condições (>, <>, <, etc...);
Corrigido o problema para inserir arrays multidimensional.
- 1.0.9
Correção ao inserir várias linhas com arrays;
Suporte para receber traduções para os logs;
Alterado os nomes dos metodos para melhorar o uso;
A versão 1.0.9 NÃO é compatível com as anteriores.
- 1.1.0
Organização estrutural.
- 1.1.1
Correção do composer.json.
- 1.1.2
Adiconado método para verificação de conexão com o banco de dados.
- 1.1.3
Correção para o método selectManual.
- 1.1.4
Adicionado o padrão singleton;
Agora você deve solicitar uma instancia utilizando o método static getInstance().
- 1.1.5
Melhorado a estrutura para compreensão de outros programadores; Removido alguns processos;
Essa é uma versão de teste e ainda irei finalizar/atualizar a documentação.
- 1.1.8
Você deve pegar uma instancia dessa forma agora: \PlusCrud\PlusCrud::getInstance(). Você pode passar os argumentos pelo método.
Essa versão ou as superiores são compatíveis apenas com o PHP 7.1.x ou maior.
- 1.1.9
Alteração do README.md
- Licença: MIT License
- Copyright: Jeconias Santos
- Status: Desenvolvimento