[ Tutorial Symfony 2 & Doctrine 2 ] – Como Gerar Um Repositório

Este tutorial aborda a criação de repositórios no Doctrine 2 com Synfony 2. Nele será demonstrado como criar uma Entidade com seu repositório utilizando anotações.

NOTA:

É obrigatório que você leia a introdução deste tutorial disponível no link http://gilbertoalbino.com/tutorial-symfony-2-e-doctrine-2 e veja a lista com outros tutoriais relacionados.

O que é um Repositório?

Um Respositório (Repository, do inglês) é um termo utilizado pelos Mapeadores de Objetos Relacionais (ORM) que determina um local onde os dados podem ser acessados, ou seja, um repositório de dados. Há uma distinção entre banco de dados e repositório, uma vez que este último não se importa como o dados está armazenado. Um repositório é utilizado pelo Doctrine para abstrair um banco de dados. Todas as Entidades precisam estar dentro de um repositório e seguir uma nomenclatura. Mas tudo isto é feito pelo próprio Doctrine para nós.

Criando um Repositório

Para criar um repositório vamos fazer uma anotação na nossa Entidade Product e executar um comando que analisará as anotações em nossas classes Entidades e fará as devidas alterações.

Abra o arquivo com a Entidade Product e modifique a anotação Entity passando algumas propriedades:

Atualmente a classe está anotada assim:

/**
 * Product
 *
 * @ORM\Table(name="products")
 * @ORM\Entity
 */
class Product
{
 ...
}

Modifique para:

/**
 * Product
 *
 * @ORM\Table(name="products")
 * @ORM\Entity(repositoryClass="Acme\DemoBundle\Repository\ProductRepository")
 */
class Product
{
 ...
}

E execute o comando para atualizar as Entidades:

php app/console generate:doctrine:entities AcmeDemoBundle

Veja que foi criado o arquivo ProductRepository.php dentro do diretório “src/Acme/DemoBundle/Repository/”.

E o mesmo contém o código:

// src/Acme/DemoBundle/Repository/ProductRepository.php
namespace Acme\DemoBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
* ProductRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class ProductRepository extends EntityRepository
{
}

É isso ai! Abração do Giba

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *