Classe CRUD
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., (*1)
- FĂĄcil de usar
- Mini sistema de log
- Reaproveitar conexĂŁo com o Banco de dados
Obtenha a classe:, (*2)
composer require pluscrud/crud
Conhecendo a Classe
Aqui irei descrever todo o funcionamento da classe e como utilizar todos os mĂ©todos que contĂ©m disponĂveis no momento., (*3)
Como eu posso inicializar a classe?
VocĂȘ pode iniciar a classe de 3 maneiras distintas, quem decide Ă© vocĂȘ! ;), (*4)
Modo 1:
VocĂȘ pode utilizar sua classe de conexĂŁo com o banco de dados e passar a conexĂŁo atual para o CRUD., (*5)
$pdo = 'Seu objeto de conexĂŁo com o banco de dados';
$crud = \PlusCrud\PlusCrud::getInstance($pdo);
Modo 2:
VocĂȘ pode utilizar define ou array., (*6)
define('CONFIG', ['localhost', 'teste', 'root', 'senha' ]);
$crud = \PlusCrud\PlusCrud::getInstance(null, CONFIG);
------------------------------------------------------------------------------
$config = array('localhost', 'teste', 'root', 'senha');
$crud = \PlusCrud\PlusCrud::getInstance(null, $config);
Modo 3:
Se vocĂȘ nĂŁo quiser utilizar define ou array, utilize os mĂ©todos internos do CRUD., (*7)
$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:, (*8)
ConexĂŁo com o banco de dados:
Inicializada | ::1 | 11-02-2018 21:34:14
Métodos CRUD
Agora que sabemos como iniciar a conexão com o banco de dados vamos aprender a utilizar os métodos., (*9)
Criando registros
A criação de registros com essa classe é bastante fåcil, basta utilizar $crud->insert()., (*10)
$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:, (*11)
array('nome' => 'Jeconias', 'email' => 'jeconiass2009@hotmail.com', 'senha' => 'senha');
Exemplo array multidimensional:, (*12)
$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;, (*13)
$crud->inserir retorna a quantidade de linha inseridas., (*14)
Selecionando registros
$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');, (*15)
VersĂŁo >= 1.0.8
- Nas versĂ”es acima de 1.0.8 vocĂȘ pode definir o tipo de condição para cada valor.
Exemplo:, (*16)
array('versao' => '2.2', 'joker' => array('>'))
VocĂȘ pode inserir mais "Jokers":, (*17)
Outro exemplo:, (*18)
array('versao' => '2.2' 'tipo' => 'stable', 'joker' => array('>', '='))
PS.:, (*19)
- 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;, (*20)
-
Quinto parĂąmetro: Uma array para classificar o conjunto de resultados em ordem ascendente ou decrescente. Use DESC ou ASC., (*21)
Monte sua SQL
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., (*22)
$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., (*23)
Atualizando registros
$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., (*24)
Deletando registros
$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., (*25)
Inserir tradução do log
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, (*26)
Basta chamar o método $crud->setLanguage e utilizar dessa forma:, (*27)
$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., (*28)
Log
Use $crud->log() para receber as açÔes e erros gerados., (*29)
Todos os métodos
| 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 |
Changelog
Corrigido problema na instĂąncia do CRUD e PDO., (*30)
Adicionado mais comentĂĄrios na classe., (*31)
Correção do método hash., (*32)
Suporte para mĂșltiplos "inserts"., (*33)
Suporte para SQL montada., (*34)
Comentårios e pequenas correçÔes;, (*35)
Melhorado o sistema de logs., (*36)
Correção para mĂșltiplos inserts., (*37)
Agora Ă© possĂvel utilizar WHERE com outras condiçÔes (>, <>, <, etc...);, (*38)
Corrigido o problema para inserir arrays multidimensional., (*39)
Correção ao inserir vårias linhas com arrays;, (*40)
Suporte para receber traduçÔes para os logs;, (*41)
Alterado os nomes dos metodos para melhorar o uso;, (*42)
A versĂŁo 1.0.9 NĂO Ă© compatĂvel com as anteriores., (*43)
Organização estrutural., (*44)
Correção do composer.json., (*45)
Adiconado método para verificação de conexão com o banco de dados., (*46)
Correção para o método selectManual., (*47)
Adicionado o padrĂŁo singleton;, (*48)
Agora vocĂȘ deve solicitar uma instancia utilizando o mĂ©todo static getInstance()., (*49)
Melhorado a estrutura para compreensĂŁo de outros programadores;
Removido alguns processos;, (*50)
Essa é uma versão de teste e ainda irei finalizar/atualizar a documentação., (*51)
VocĂȘ deve pegar uma instancia dessa forma agora: \PlusCrud\PlusCrud::getInstance(). VocĂȘ pode
passar os argumentos pelo método., (*52)
Essa versĂŁo ou as superiores sĂŁo compatĂveis apenas com o PHP 7.1.x ou maior., (*53)
Alteração do README.md, (*54)
Sobre
- Licença: MIT License
- Copyright: Jeconias Santos
- Status: Desenvolvimento