Zend Framework 2 + Doctrine – Parte 1

Olá pessoal estou publicando aqui meu tutorial de como consegui instalar e configurar o Zend Framework 2 com Doctrine rodando Windows 7. De início vem o desabafo hehe, tentei de várias maneiras seguindo o tutorial do Jason Grimes: http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/ e o próprio Skeleton do ZF2.
Após ter tomado uma surra e sofrido bastante consegui realizar a façanha hoje e não poderia deixar de compartilhar. Sabe como é né, amanhã ou depois posso esquecer de algum detalhe para configurar em outro pc e penar novamente!
Então chega de trova e “letis’ gou”

Vamos considerar que você tenha instalado na sua máquina o xampp ou wamp. Neste exemplo usei o xampp versão 1.8.1 Usar ou não xampp ou wamp não é requisito, mas eles quebram um galho na hora de configurar.

1) Requisitos mínimos:
PHP 5.3.x;
Servidor Apache e MySQL;
PDO habilitada no php.ini (extension=php_pdo_mysql.dll).

2) Ao invés de ir seguindo com Zend neste momento, resolvi instalar o git. Pois logo adiante precisaremos dele funcionando. Então para quem ainda não tem instalado aqui vai o link para download: http://msysgit.github.com/. Caso contrário pule esta etapa.

3) Baixe os arquivos do zf2-tutorial no github: https://github.com/akrabat/zf2-tutorial

4) Crie uma pasta dentro do seu www ou htdocs com o nome que você quiser, no caso criei a pasta zf2-tutorial
C:\xampp\htdocs\zf2-tutorial
Dica: não use underline no nome da pasta, pois perdi algumas horas com erros no zend por causa deste detalhe.

5) Extraia os arquivos do tutorial dentro da pasta zf2-tutorial conforme mostra abaixo:

 

 

 

 

6) Edite o arquivo composer.json deixando assim:

{
   "name": "zendframework/skeleton-application",
   "description": "Skeleton Application for ZF2",
   "license": "BSD-3-Clause",
   "keywords": [
   "framework",
   "zf2"
   ],
   "homepage": "http://framework.zend.com/",
   "minimum-stability": "dev",
   "require": {
   "php": ">=5.3.3",
   "zendframework/zendframework": "dev-master",
   "doctrine/doctrine-orm-module": "dev-master"
   }
}

7) Bom agora que você já tem o git rodando, vamos baixar os pacotes restantes do projeto.

Entre no DOS e vá até sua pasta do projeto

  cd /

  cd xampp\htdocs\zf2-tutorial

  c:\xampp\php\php composer.phar self-update

Estes comandos vão fazer atualizar para versão atual do composer. Mais informações você encontra aqui: http://getcomposer.org/

Em seguida digite:

  c:\xampp\php\php composer.phar update

Este comando irá baixar as pastas “bin, composer, doctrine, symfony e zendframework” para dentro da pasta vendor. Após terminar todos os downloads você notará que a pasta zendframework ficará nesta estrutura:

vendor/zendframework/zendframework

As pastas do zend ficaram duplicadas né! Então faça o seguinte:

Renomeie a pasta zendframework para ZF2 porque o init_autoloader.php procura por este caminho dentro da vendor.
Ex: vendor/ZF2

Bom pessoal boa parte já foi feita, agora precisamos fazer algumas modificações em alguns arquvios php e fazer alguns ajustes no apache. Para não ficar muito extenso decidi quebrar este tuto em partes.

Siga aqui para continuar na segunda parte deste tutorial.

“Cada fato que aprendemos nos leva à aprendizagem de um outro fato; o conhecimento aumenta continuamente. Cada talento que nós cultivamos traz à mente o desejo de cultivar um outro talento; nós estamos sujeitos aos impulsos da vida, em busca de expressão, que nos leva sempre para o saber mais, o fazer mais, o ser mais”

Anúncios

8 pensamentos sobre “Zend Framework 2 + Doctrine – Parte 1

  1. Muito legal seu tutorial meu ajudou muito, eu tambem estava quebrando a cabeça com o tutorial do Jason e nao estava dando certo, com sua ajuda deu certo

    só gostaria de corrigir um detalhe que voce comentou, o composer é muito pratico e inteligente, depois de usar ele nao precisa ficar copiando nada ele tem que funcionar do jeito que ele vem
    o motivo de existir a pasta zendframework/zendframework é porque dentro da pasta zendframework/ ira conter tbm: zendpdf, zendservice-recaptcha, zend-version etc.
    eu usei seus exemplos nos arquivos do projeto mas nao mudei pasta nenhuma de lugar apenas usei o composer e nem tenho a pasta ZF2 e tudo funcionou perfeitamente.
    abraços

  2. Outra dica ainda sobre o composer, alem de nao precisar copiar a pasta do zend para ZF2, nao preciso mexer em nada somente usar o composer ele ira fazer o download e tera o caminho correto de todas as pastas por isso pode apagar o arquivo init_autoloader.php, e o index.php ficaria assim:
    run()->send();

    valeu pelo tutorial.

    • Fabyo não tinha me ligado nisso, refiz conforme sua dica e deu certo…Não vou alterar o post. A sua dica fica como um adicional ou uma correção aqui hehehe.
      Abraço.

  3. Ao executar o php composer.phar update sempre recebia o erro [Composer\Downloader\TransportException], em algumas buscas encontrei a dica de executar assim:

    php composer.phar update –prefer-source

    Para mim funcionou, fica a dica para quem tiver enfrentando este mesmo problema.

  4. Antes de tudo, quero agradecer ao BetoLima pela excelente contribuição dada aos iniciantes do ZF2. Muito obrigado mesmo!

    O meu ‘site’ está hospedado em um provedor, portanto uso um servidor compartilhado por outras hospedagens, o que me leva a não possuir as permissões de administrador do sistema operacional.

    Por esse motivo, não me é possível criar variáveis globais de ambiente (‘ZF2_PATH’), nem modificar o ‘php.ini’ nem o ‘http.conf’.

    Para funcionar, modifiquei o conteúdo do ‘init_autoloader.php’, da seguinte maneira:

    1) Localizei o seguinte trecho do arquivo:
    ….
    $zf2Path = false;

    if (getenv(‘ZF2_PATH’)) { // Support for ZF2_PATH environment variable or git submodule
    $zf2Path = getenv(‘ZF2_PATH’);
    } elseif (get_cfg_var(‘zf2_path’)) { // Support for zf2_path directive value
    $zf2Path = get_cfg_var(‘zf2_path’);
    } elseif (is_dir(‘vendor/ZF2/library’)) {
    $zf2Path = ‘vendor/ZF2/library’;
    }
    …..

    2) Incluí uma linha logo em seguida, para forçar a identificação do caminho da pasta ‘library’ do meu ZendFramework:
    …..
    $zf2Path = false;

    if (getenv(‘ZF2_PATH’)) { // Support for ZF2_PATH environment variable or git submodule
    $zf2Path = getenv(‘ZF2_PATH’);
    } elseif (get_cfg_var(‘zf2_path’)) { // Support for zf2_path directive value
    $zf2Path = get_cfg_var(‘zf2_path’);
    } elseif (is_dir(‘vendor/ZF2/library’)) {
    $zf2Path = ‘vendor/ZF2/library’;
    }
    $zf2Path = ‘vendor/zendframework/zendframework/library’;
    …..

    É isso. Obrigado.

    • Grande Gustavo, eu que agradeço pela humildade e contribuição. Sou apenas um mero estudante assim como muitos espalhados por aí.
      Obrigado pela ajuda.
      Namastê!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s