Neste artigo, veremos diferentes camadas de abstração de banco de dados para PHP. Também veremos alguns plugins de banco de dados PHP CRUD que podem facilitar sua vida ao interagir com um banco de dados MySQL.
O que é uma camada de abstração de banco de dados?
Como o nome sugere, uma camada de abstração de banco de dados é uma camada que fica entre seu aplicativo e o banco de dados subjacente. Você usará uma camada de abstração de banco de dados para interagir com seu banco de dados. O benefício da camada de abstração do banco de dados é que você pode alternar o back-end do banco de dados subjacente sem se preocupar com as alterações de código em seu aplicativo. Uma camada de abstração do banco de dados também simplifica o código do banco de dados e facilita a conexão e a atualização do banco de dados.
Vejamos um exemplo para entender isso. Digamos que você escolheu o MySQL como um back-end de banco de dados na fase inicial do desenvolvimento de seu aplicativo. Você não está usando nenhuma camada de abstração de banco de dados em seu aplicativo, portanto, acabará escrevendo código específico para o back-end do MySQL ao realizar operações de banco de dados.
E se, por algum motivo, você precisar alterar o back-end do banco de dados do MySQL para o Oracle? Essa mudança não será fácil. A primeira coisa que você terá que fazer é revisar cada bit do código específico do MySQL em seu aplicativo. Você terá que passar por cada linha de código que interage com o back-end do banco de dados MySQL e substituí-lo pelo código equivalente para o novo banco de dados.
Por outro lado, se você usou uma camada de abstração de banco de dados para interagir com o back-end do banco de dados, a mudança para algum outro back-end de banco de dados compatível com ODBC é feita em um piscar de olhos. Você só precisa alterar as configurações de conexão para refletir o novo back-end do banco de dados. Assim, como você pode ver, uma camada de abstração de banco de dados oculta a complexidade permitindo que você converse com diferentes back-ends de banco de dados.
Dê uma olhada no diagrama a seguir para entender o que discutimos até agora.
Como você pode ver, a camada de abstração do banco de dados fica entre o aplicativo e o banco de dados real, portanto, o aplicativo não precisa conhecer as especificidades de como o banco de dados subjacente funciona.
Opções da camada de abstração do banco de dados
Em seguida, veremos algumas opções que você pode usar no desenvolvimento de aplicativos do dia-a-dia. Vamos dar uma olhada rápida nas opções que vamos discutir no restante do artigo.
- DOP
- Doutrina DBAL
- ADOdb
- PDOModel:abstração de banco de dados e classe PHP auxiliar
- Sistema de gerenciamento de dados xCRUD
- PDO Crud:aplicativo PHP CRUD avançado
As três primeiras opções – PDO, Doctrine DBAL e ADOdb – são opções populares de código aberto e de uso gratuito. As outras três são opções comerciais disponíveis no CodeCanyon, então você terá que pagar por elas se quiser usá-las. Por outro lado, eles fornecem muitos recursos que permitem configurar rapidamente andaimes básicos em seus aplicativos. Além disso, eles têm um preço razoável em comparação com o que oferecem, como veremos mais adiante neste artigo.
Uma rápida olhada nas opções populares e gratuitas
Nesta seção, veremos algumas opções populares e gratuitas que você pode usar como uma camada de abstração de banco de dados em seus aplicativos PHP.
DOP
A biblioteca PDO (PHP data objects) é uma extensão PHP que fornece uma interface para trabalhar com diferentes back-ends de banco de dados. Para usar o PDO, você precisará instalar drivers PDO específicos do banco de dados que deseja usar em seus aplicativos.
Portanto, se você quiser trabalhar com o banco de dados MySQL usando a extensão PDO, você precisará ter certeza de que ativou a extensão php_pdo, que é uma extensão PDO principal, e a extensão pdo_mysql, que permite que você converse com o Servidor MySQL usando a camada de abstração do banco de dados PDO.
Claro, se você quiser trabalhar com um banco de dados diferente do MySQL, você terá que instalar a extensão pdo para esse banco de dados back-end. Para obter mais informações sobre os drivers de banco de dados compatíveis no PDO, você pode visitar a página de drivers do PDO no manual em PDF, que inclui tudo o que você precisa saber.
Doutrina DBAL
A biblioteca Doctrine DBAL (camada de abstração de banco de dados) é outra biblioteca de abstração de banco de dados popular que fornece um wrapper em torno do PDO. O Doctrine DBAL fornece métodos de API fáceis de usar e alguns recursos adicionais em comparação com o uso da extensão PDO pura por conta própria.
A lista de fornecedores de banco de dados suportados pelo Doctrine DBAL é:
- MySQL
- Oráculo
- Microsoft SQL Server
- PostgreSQL
- SAP Sybase SQL Anywhere
- SQLite
- Chuva
O Doctrine DBAL é desenvolvido sob o projeto Doctrine, que também fornece um ORM (mapeador objeto-relacional) que fica no topo do Doctrine DBAL. O Doctrine ORM é uma ferramenta que permite escrever consultas de banco de dados de forma orientada a objetos. Na verdade, o ORM em si é um tópico amplo, então não entraremos em detalhes aqui, mas escreverei um artigo sobre ORM no futuro.
ADOdb
Por último, ADOdb é uma biblioteca de classes muito popular e um player muito antigo neste território. É uma biblioteca externa que você primeiro terá que baixar e configurar com sua configuração, caso deseje usá-la. O ADOdb também oferece suporte a uma ampla variedade de bancos de dados para escolher como back-end de banco de dados.
Além de fornecer componentes para consultar e atualizar o banco de dados, ele também fornece a biblioteca Active Record orientada a objetos, que funciona como um ORM da mesma forma que discutimos anteriormente na seção ORM do Doctrine.
Além disso, você precisará instalar os drivers correspondentes para back-ends de banco de dados para esta biblioteca, da mesma forma que faria para a extensão PDO. Por exemplo, se você quiser trabalhar com um banco de dados MySQL, terá que instalar o driver mysqli em PHP.
Então, essa foi uma rápida olhada em algumas opções gratuitas úteis. Na próxima seção, veremos algumas opções comerciais populares que fornecem muito mais recursos do que apenas abstração de banco de dados.
Melhores scripts de abstração de banco de dados PHP para comprar
Nesta seção, discutiremos algumas opções avançadas que você pode escolher para uma biblioteca de abstração de banco de dados. Na verdade, as opções que escolhemos não funcionarão apenas como uma biblioteca de abstração de banco de dados, elas fornecem muito mais que isso.
PDOModel:abstração de banco de dados e classe PHP auxiliar
A biblioteca PDOModel é uma abstração de banco de dados e uma classe PHP auxiliar que é construída sobre a extensão PDO. É um excelente wrapper que permite executar operações de inserção, atualização, exclusão e seleção sem escrever nenhuma consulta SQL. Assim, proporciona simplicidade e legibilidade. Na verdade, ele fornece funções de wrapper que permitem que você faça operações complexas usando funções simples sem escrever consultas SQL reais.
No momento, ele suporta back-ends de banco de dados MySQL, Postgres, SQlite e SQL Server. Ele suporta transações e operações em lote, que é um recurso essencial caso você deseje importar um banco de dados de uma fonte externa. A cereja no topo é que ele permite exportar dados para formatos como CSV, Excel, PDF, XML e muito mais.
Vamos dar uma olhada rápida no código a seguir, que demonstra como é fácil usar o auxiliar PDOModel.
<?php // initialize the PDOModel class $pdoModelObj = new PDOModel(); // connect to a database $pdoModelObj->connect("host", "username", "password", "database_name"); // querying database [select * FROM users] $result = $pdoModelObj->select("users");
Então, como você pode ver, é muito fácil realizar operações de banco de dados usando a classe auxiliar PDOModel. Para mais informações, você pode visitar a página oficial do PDOModel no CodeCanyon.
As bibliotecas sobre as quais falamos até agora são camadas de abstração de banco de dados, mas vamos também ver alguns plugins CRUD (criar, ler, atualizar e excluir) que permitem gerar código de scaffolding facilmente.
xCRUD:Sistema de gerenciamento de dados
xCRUD é um plugin gerador de CRUD simples, mas poderoso, escrito para PHP e MySQL. Ele permite que você crie código básico de scaffolding em pouco tempo e também é útil para não programadores. Em sua essência, está usando a extensão mysqli para lidar com diferentes operações de banco de dados. Mas você não precisa se preocupar com as complexidades subjacentes - você só precisa usar as funções fáceis de usar fornecidas pelo sistema xCRUD.
Ao usar o plug-in xCRUD, você só precisa projetar suas tabelas de banco de dados e o plug-in xCRUD cuidará do resto. Com apenas algumas linhas de código, você terá uma interface de usuário pronta para uso que permite criar e atualizar registros. Você também terá uma exibição de lista que lista todos os registros.
Vamos dar uma olhada rápida no código que você precisa escrever para gerar métodos CRUD para a tabela de usuários.
<?php $xCRUD = Xcrud::get_instance(); $xCRUD->table('users'); echo $xCRUD->render();
Não é legal? Com apenas algumas linhas de código, você gerou o código de scaffolding para a tabela de usuários. E você pode fazer muito mais com este plugin, pois ele vem com muitos recursos. Você pode visitar a página oficial do plug-in no CodeCanyon para obter mais informações.
PDO CRUD:Aplicativo PHP CRUD avançado
Por último, vamos dar uma olhada no plugin PDO CRUD, que também é um plugin gerador de CRUD que suporta back-ends de banco de dados MySQL, Postgres e SQLite. Com apenas algumas linhas de código, este plugin é capaz de gerar uma interface de usuário bonita e atraente, que permite realizar operações diárias com seu banco de dados sem esforço.
Como o nome sugere, não é apenas um gerador básico de CRUD, mas sim um modelo completo para um aplicativo de banco de dados. Vamos dar uma olhada rápida em alguns dos recursos poderosos deste plugin:
- edições em linha
- envios de arquivos
- suporte para plug-ins JavaScript
- unir operações
- pesquisa, paginação e exportação
- suporte a vários idiomas
- e muito mais
E aqui está uma rápida olhada no código que você usaria para gerar uma interface CRUD básica:
<?php $pdoCrudObject = new PDOcrud(); echo $pdoCrudObject->dbTable('users')->render();
É isso! Visite a página oficial deste plugin CRUD no CodeCanyon para ter uma ideia de quão poderoso é este plugin.