Apigility e Doctrine 2

Hoje vou explicar como juntar o Doctrine 2 com o Apigility. Espero que isso ajude voc锚s da forma como me ajudou 馃檪

Baixe o Apigility por aqui.
Depois de extrair o conte煤do, inicie o servidor.

php -S 0.0.0.0:8888 -t public public/index.php

Agora vamos criar uma API
Criar o servi莽o REST

Depois altere as configura莽玫es do aplicativo, a Entity precisa ser alterada
Local da Entity

Agora, vamos as configura莽玫es

Primeiro vamos adicionar o Doctrine 2 como depend锚ncia, isso pode ser feito de duas formas, diretamente no arquivo.

"doctrine/doctrine-orm-module" : "0.8.*"

ou

php composer.phar require "doctrine/doctrine-orm-module" "0.8.*"

Se voc锚 fez do primeiro jeito, atualize as depend锚ncias, pela segunda forma isso n茫o 茅 preciso.

php composer.phar update

Agora, precisamos adicionar os m贸dulos do Doctrine 2 no application.config.php.

'DoctrineModule',
'DoctrineORMModule',

No module.config.php, adicione a configura莽茫o para que o zend processe o doctrine

'doctrine' => array(
    'driver' => array(
        'user_entities' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(
                0 => __DIR__ . '/../src/User/Entity',
            ),
        ),
        'orm_default' => array(
            'drivers' => array(
                'User\Entity' => 'user_entities',
            ),
        ),
    ),
),

Para finalizar as configura莽玫es, crie o arquivo que configura a conex茫o com o banco e depois crie na pasta data/ um arquivo database.sqlite, ele 茅 o seu banco de dados.

A entidade User precisa ser alterada de lugar, mova ela para /src/Entity e renomeie conforme gist.

Quando as configura莽玫es e a entidade estiver criada, falta gerar as tabelas.

php public/index.php orm:schema-tool:create

Caso seja preciso atualizar o banco de dados

php public/index.php orm:schema-tool:update --force

Agora altere os arquivos que o Apigility gerou

UserResource.php

UserCollection.php

UserResourceFactory.php

Como aqui 茅 para teste, eu inseri um registo diretamente no banco, depois disso, s贸 usar algum programa que faz post rest, eu uso o RESTClient do Firefox.

Executando o get list

http://localhost:8888/user

Get Collection

Executando o get

http://localhost:8888/user/1

Get ID

O c贸digo pode ser baixado pelo github aqui

Qualquer d煤vida s贸 mandar e-mail ou postar aqui.