mviniis/connection-database
Composer 安装命令:
composer require mviniis/connection-database
包简介
Gerenciador de conexões com banco de dados e gerador de queries
README 文档
README
Gerenciador de conexões com banco de dados, utilizando o PDO do PHP.
Getting Started
Instalation
composer require mviniis/connection-database
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;
- Retorno: Um objeto do tipo
- fetchAllObjects:
- Retorno: Um objeto do tipo
DBEntity;foreach($obProduto->fetchAllObjects() as $obDTOProduto) $obDTOProduto->nome;
- Retorno: Um objeto do tipo
- fetchColumn:
- Retorno: Os dados da coluna que foi consultada;
$obProduto->fetchColumn();
- Retorno: Os dados da coluna que foi consultada;
- rowCount:
- Retorno: Quantidade de linhas que foram afetadas pela operação;
$obProduto->rowCount();
- Retorno: Quantidade de linhas que foram afetadas pela operação;
- getLastInsertId:
- Retorno: Retorna o último ID de uma operação de inserção de dados;
$obProduto->getLastInsertId();
- Retorno: Retorna o último ID de uma operação de inserção de dados;
- fetchObject:
-
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;
- O objeto
DOCUMENTAÇÃO DE MÉTODOS
- Documentação dos principais métodos que poderão ser utilizados
DBExecute::class
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
- conditions: Condições da consulta
-
delete:
- conditions: Condições da remoção
- Tipos aceitos: SQLWhereGroup|SQLWhere
- Obrigatório: Não
- conditions: Condições da remoçã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
- fields: Array com os campos que serão populados
-
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
- obSqlSelect: Query que será utilizada para selecionar os dados que serão inseridos
-
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
- set: Campos que serão atualizados
mviniis/connection-database 适用场景与选型建议
mviniis/connection-database 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 07 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 mviniis/connection-database 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mviniis/connection-database 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-07-20