Doctrine e CodeIgniter

Doctrine e CodeIgniter – Intregrando os frameworks

Doctrine é um framework que possibilita fazer o mapemento de bancos de dados relacionais, o seu uso permite trabalhar com as tabelas do banco de dados sendo representadas por classes.

Para integrar o Doctrine com o CodeIgniter é muito fácil, você vai precisar apenas do Composer e de criar uma library no CodeIgniter para que então possa utilizar os recursos disponibilizados pelo Doctrine.

Criando o projeto de exemplo

Para iniciar esse exemplo você deverá abrir o terminal e criar o seu projeto usando o Composer. Veja a seguir o comando utilizado:


composer create-project bcit-ci/codeigniter doctrine_codeigniter --prefer-dist

Após executar o comando create-project, aguarde até que o processo seja concluído e então instale o Doctrine através do próprio Composer, usando o comando a seguir:

 composer require doctrine/orm 

Até o momento o projeto não possui suporte a URLs amigáveis, e para resolver esse problema você deverá criar um arquivo .htaccess na raiz do projeto. Utilize o código a seguir:


<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Criando a library “Doctrine”

Para que o Doctrine funcione integrado ao CodeIgniter será necessário criar uma library específica. Essa library será a responsável por fazer os devidos carregamentos e configurações do Doctrine e permitir que suas funcionalidades possam ser acessadas a partir da chamada $this->doctrine.

Crie um arquivo chamado Doctrine.php dentro do diretório application/libraries, conforme o código fonte a seguir:

Com a library criada, é hora de fazer algumas configurações.

Configurando o projeto

Como o Doctrine foi instalado através do Composer, será necessário atualizar a configuração do projeto para que o CodeIgniter carregue automaticamente as libraries instaladas via Composer.

Abra o arquivo application/config/config.php e altere a configuração do autoload do Composer conforme demonstrado a seguir:


$config['composer_autoload'] = './vendor/autoload.php';

Salve o arquivo e em seguida abra o arquivo applications/config/autoload.php e faça com que a library Doctrine que você criou anteriormente seja carregada.


$autoload['libraries'] = array('Doctrine');

Com essas configurações você já pode começar a utilizar os recursos do Doctrine em seus projetos.

Vejamos agora um exemplo de implementação de uma rotina de criação de registro (insert) usando Doctrine e CodeIgniter.

Fazendo um insert com Doctrine e CodeIgniter

A primeira coisa a se fazer é criar a estrutura de banco de dados, nesse caso será bem simples, você utilizará uma única tabela chamada categoria.

Crie o banco de dados e em seguida crie a tabela categoria executando a instrução SQL a seguir:


CREATE TABLE `categoria` (
`idCategoria` int(11) NOT NULL AUTO_INCREMENT,
`nomeCategoria` varchar(45) NOT NULL,
PRIMARY KEY (`idCategoria`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Após criar o banco de dados, lembre-se de ajustar as configurações de conexão no arquivo application/config/database.php.

O próximo passo é criar o model (ou entidade, como o Doctrine define) responsável pelas operações com os dados da tabela categoria.

Crie um arquivo Categoria.php no diretório application/models/Entity conforme o código a seguir:

Repare que a classe não é estendida de CI_Model e que faz uso do namespace Entity. Além disso ela usa comentários com a formatação do Doctrine, para que ele possa compreender as informações sobre a classe e seus dados e métodos.

Após criar o model, você deverá criar um controller chamado Categoria.php no diretório application/controllers. Esse controller vai conter apenas um método, que será responsável por adicionar um registro na tabela categoria.

Adicione o código a seguir no controller:

Todos os arquivos necessários foram criados, é hora de testar o funcionamento. Levando em conta que você está trabalhando em localhost, sua URL de acesso deve ficar da seguinte forma:

http://localhost/doctrine_codeigniter/categoria/add

Não será exibido nada na tela – a não ser que tenha ocorrido algum erro – então para verificar se a categoria foi criada com sucesso, acesse o seu banco de dados via PhpMyAdmin ou algum outro SGBD de sua preferência e verifique a existência do registro.

Conclusão

Esse foi um exemplo bem simples de uso do Doctrine com o CodeIgniter, mas o mais importante você aprendeu, que foi integrar o Doctrine com o CodeIgniter.

Para saber mais sobre o Doctrine você pode acessar o site oficial do projeto clicando aqui.

Caso tenha dúvidas ou tenha se deparado com algum erro durante o processo de integração, use os comentários para que possamos te ajudar.

 

Doctrine e CodeIgniter - Código-fonte