PHPackages                             pluscrud/crud - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. pluscrud/crud

ActiveLibrary[Database &amp; ORM](/categories/database)

pluscrud/crud
=============

Um PlusCrud para otimizar suas consultas.

1.1.9(7y ago)0431MITPHPPHP &gt;=7.1.0

Since Feb 13Pushed 7y ago1 watchersCompare

[ Source](https://github.com/jeconiassantos/CRUDphp)[ Packagist](https://packagist.org/packages/pluscrud/crud)[ Docs](https://github.com/jeconiassantos/CRUDphp)[ RSS](/packages/pluscrud-crud/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)DependenciesVersions (22)Used By (0)

Classe CRUD
===========

[](#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.

- Fácil de usar
- Mini sistema de log
- Reaproveitar conexão com o Banco de dados

Obtenha a classe:

```
composer require pluscrud/crud

```

Conhecendo a Classe
===================

[](#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.

### Como eu posso inicializar a classe?

[](#como-eu-posso-inicializar-a-classe)

Você pode iniciar a classe de 3 maneiras distintas, quem decide é você! ;)

#### Modo 1:

[](#modo-1)

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);

```

#### Modo 2:

[](#modo-2)

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);

```

#### Modo 3:

[](#modo-3)

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

```

Métodos CRUD
------------

[](#métodos-crud)

Agora que sabemos como iniciar a conexão com o banco de dados vamos aprender a utilizar os métodos.

### Criando registros

[](#criando-registros)

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.

### Selecionando registros

[](#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')`;

    ###### **Versão &gt;= 1.0.8**

    [](#versão--108)

    - 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**.

    #### Monte sua SQL

    [](#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.

    ```
      $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.

### Atualizando registros

[](#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.

### Deletando registros

[](#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.

### Inserir tradução do log

[](#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

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](https://github.com/jeconiassantos/crud/tree/master/src).

### Log

[](#log)

Use `$crud->log()` para receber as ações e erros gerados.

Todos os métodos
----------------

[](#todos-os-métodos)

MétodoAçãoRetornosetLanguage()Alterar idioma dos registrosbooleansetDBHost()Inserir nome do host/servidornothingsetDBName()Nome do banco de dados.nothingsetDBUser()Nome do usuário do banco de dados.nothingsetDBPass()Senha do banco de dados.nothingrun()Iniciar a conexão do banco de dados (necessário apenas quando utilizar o modo 3 de conexão com o DB).nothinginsert()Inserir dadosA quantidade de linhas inseridasselect()Selecionar dadosTodos os dados selecionadosselectManual()Selecionar dados com SQL manualOs dados selecionadosupdate()Atualizar dadosQuantidade de linhas alteradasdelete()Remover linhasA quantida de linhas afetadasconnStatus()Verifica se a conexão com o banco de dados existebooleanlog()nothingTodo o log do objetoChangelog
---------

[](#changelog)

- 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 (&gt;, &lt;&gt;, &lt;, 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

Sobre
-----

[](#sobre)

- Licença: [MIT License](https://opensource.org/licenses/MIT)
- Copyright: Jeconias Santos
- Status: Desenvolvimento

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~0 days

Total

21

Last Release

2574d ago

PHP version history (2 changes)1.0.0PHP &gt;=5.4.0

1.1.8PHP &gt;=7.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/2c10ba5a29be568850def3cd1446378419db2d234e29bda809423bc2c1e735b3?d=identicon)[jeconiassantos](/maintainers/jeconiassantos)

---

Top Contributors

[![Jeconias](https://avatars.githubusercontent.com/u/32512776?v=4)](https://github.com/Jeconias "Jeconias (42 commits)")

### Embed Badge

![Health badge](/badges/pluscrud-crud/health.svg)

```
[![Health](https://phpackages.com/badges/pluscrud-crud/health.svg)](https://phpackages.com/packages/pluscrud-crud)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
