PHPackages                             mviniis/connection-database - 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. mviniis/connection-database

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

mviniis/connection-database
===========================

Gerenciador de conexões com banco de dados e gerador de queries

v1.0.0(1y ago)013MITPHPPHP ^8.0.2

Since Aug 13Pushed 1y ago1 watchersCompare

[ Source](https://github.com/mviniis/conection-database)[ Packagist](https://packagist.org/packages/mviniis/connection-database)[ RSS](/packages/mviniis-connection-database/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Connection Database
===================

[](#connection-database)

Gerenciador de conexões com banco de dados, utilizando o PDO do PHP.

Getting Started
===============

[](#getting-started)

Instalation
-----------

[](#instalation)

```
composer require mviniis/connection-database
```

Usage
-----

[](#usage)

- Defina a constante `PATH_ENV_APP`, para informar a localização do seu arquivo `.env`;
- No seu arquivo `.env`, defina as seguintes variáveis:

    ```
      DB_CONNECTION="mysql"
      DB_HOST="host"
      DB_PORT="3306"
      DB_DATABASE="database"
      DB_USERNAME="root"
      DB_PASSWORD=""
      DB_CHARSET="utf8"

    ```
- Em primeiro lugar, é necessário implementar a classe de transição de dados (DTO) de uma tabela;

    ```
      use \Mviniis\ConnectionDatabase\DTO\DTO;

      class ProdutoDTO extends DTO {
        protected $id;
        protected $nome;
        protected $preco;
        protected $sku;

        public function getParametrosClasse(): array {
          return ['id', 'nome', 'preco', 'sku'];
        }

        public function getParametrosTabela(): array {
          return ['id', 'nome', 'preco', 'sku'];
        }
      }
    ```
- Para realizar as ações, extenda a classe `Mviniis\ConnectionDatabase\DB\DBExecute`, a uma classe de manipulação da tabela;
- Defina os seguintes dados para a configuração da classe:

    - **table:** Nome da tabela que será manipulada;
    - **modelData:** Classe DTO da respectiva tabela;

    ```
      use \Mviniis\ConnectionDatabase\DB\DBExecute;

      class Produto extends DBExecute {
        protected string $table = 'produto';
        protected string $modelData = ProdutoDTO::class;
      }

      $obProduto = new Produto;
    ```
- Após configurado, pode-se utilizar dos seguintes métodos de manipulação de banco (`select`, `update`, `insert`, `insertSelect`, `delete`);

    ```
      use Mviniis\ConnectionDatabase\SQL\Parts\SQLWhere;
      use Mviniis\ConnectionDatabase\SQL\Parts\SQLWhereGroup;

      $condicoes = new SQLWhereGroup('AND', [
        new SQLWhere('id', '=', 1)
      ]);
      $obProduto->select($condicoes);
    ```
- Depois, basta utilizar um dos métodos abaixo, para processar a requisição ao banco de dados:

    - **fetchObject:**
        - *Retorno:* Um objeto do tipo `DBEntity`; ```
              $obProduto->fetchObject()->nome;
            ```
    - **fetchAllObjects:**
        - *Retorno:* Um objeto do tipo `DBEntity`; ```
              foreach($obProduto->fetchAllObjects() as $obDTOProduto) $obDTOProduto->nome;
            ```
    - **fetchColumn:**
        - *Retorno:* Os dados da coluna que foi consultada; ```
              $obProduto->fetchColumn();
            ```
    - **rowCount:**
        - *Retorno:* Quantidade de linhas que foram afetadas pela operação; ```
              $obProduto->rowCount();
            ```
    - **getLastInsertId:**
        - *Retorno:* Retorna o último ID de uma operação de inserção de dados; ```
              $obProduto->getLastInsertId();
            ```
- *OBSERVAÇÃO:*

    - O objeto `DBEntity`, possui alguns métodos para verificar o sucesso da operação e também, retornar os objetos DTOs das respectivas tabelas;
    - Para acessar o valor consultado, basta realizar a chamada do parâmetro;
        - *getSuccess:* Retorna o sucesso da operação;
        - *getMessageOperation:* Retorna a mensagem de erro, caso a operação tenha falhado;
        - *getData:* Se a operação for bem sucedida, retornará o objeto DTO da classe;
        - *getAllData:* Se a operação for bem sucedida, retornará uma array com os objetos DTOs da classe;

DOCUMENTAÇÃO DE MÉTODOS
-----------------------

[](#documentação-de-métodos)

- Documentação dos principais métodos que poderão ser utilizados

### `DBExecute::class`

[](#dbexecuteclass)

Classe que será responsável por realizar as operações de banco de dados.

- **select:**

    - **conditions:** Condições da consulta
        - **Tipos aceitos:** SQLWhereGroup|SQLWhere
        - **Obrigatório:** Não
    - **joins:** Array com as junções com outras tabelas
        - **Tipos aceitos:** SQLJoin\[\]
        - **Obrigatório:** Não
    - **fields:** Campos que serão retornados na consulta
        - **Tipos aceitos:** SQLFields\[\]
        - **Obrigatório:** Não
    - **order:** Ordenação dos dados retornados
        - **Tipos aceitos:** SQLOrder
        - **Obrigatório:** Não
    - **limit:** Limite de dados retornados
        - **Tipos aceitos:** Integer
        - **Obrigatório:** Não
    - **offset:** Paginação dos dados
        - **Tipos aceitos:** Integer
        - **Obrigatório:** Não
- **delete:**

    - **conditions:** Condições da remoção
        - **Tipos aceitos:** SQLWhereGroup|SQLWhere
        - **Obrigatório:** Não
- **insert:**

    - **fields:** Array com os campos que serão populados
        - **Tipos aceitos:** SQLFields\[\]
        - **Obrigatório:** Não
    - **values:** Array com os campos que serão populados
        - **Tipos aceitos:** SQLFields\[\]
        - **Obrigatório:** Não
    - **conditions:** Condições da inserção dos dados
        - **Tipos aceitos:** SQLWhereGroup|SQLWhere
        - **Obrigatório:** Não
    - **ignore:** Adiciona a cláusula IGNORE a inserção do(s) registro(s)
        - **Tipos aceitos:** Boolean
        - **Obrigatório:** Não
- **insertSelect:**

    - **obSqlSelect:** Query que será utilizada para selecionar os dados que serão inseridos
        - **Tipos aceitos:** SQLSelect
        - **Obrigatório:** Não
    - **fields:** Array com os campos que serão populados
        - **Tipos aceitos:** SQLFields\[\]
        - **Obrigatório:** Não
    - **ignore:** Adiciona a cláusula IGNORE a inserção do(s) registro(s)
        - **Tipos aceitos:** Boolean
        - **Obrigatório:** Não
- **update:**

    - **set:** Campos que serão atualizados
        - **Tipos aceitos:** SQLSet
        - **Obrigatório:** Não
    - **conditions:** Condições da atualização dos dados
        - **Tipos aceitos:** SQLWhereGroup|SQLWhere
        - **Obrigatório:** Não
    - **joins:** Array com as junções com outras tabelas
        - **Tipos aceitos:** SQLJoin\[\]
        - **Obrigatório:** Não
    - **limit:** Limite de dados
        - **Tipos aceitos:** Integer
        - **Obrigatório:** Não

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

689d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8090282?v=4)[matheusV](/maintainers/matheusV)[@Matheusv](https://github.com/Matheusv)

---

Top Contributors

[![mviniis](https://avatars.githubusercontent.com/u/53922640?v=4)](https://github.com/mviniis "mviniis (33 commits)")

### Embed Badge

![Health badge](/badges/mviniis-connection-database/health.svg)

```
[![Health](https://phpackages.com/badges/mviniis-connection-database/health.svg)](https://phpackages.com/packages/mviniis-connection-database)
```

###  Alternatives

[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[oat-sa/tao-core

TAO core extension

66143.7k124](/packages/oat-sa-tao-core)[api-platform/laravel

API Platform support for Laravel

58171.6k14](/packages/api-platform-laravel)[ntanduy/cloudflare-d1-database

Cloudflare D1 database driver for Laravel — full Eloquent &amp; Query Builder support.

267.8k](/packages/ntanduy-cloudflare-d1-database)

PHPackages © 2026

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