Postado em 25 de agosto de 2012
Iniciando com Zend Framework 2: Skeleton e ZfcUser
Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!
Este é um tutorial feito para ser curto e fácil de seguir para lhe ajudar a começar com o Zend Framework 2.0 e um dos seus módulos mais comuns, o ZfcUser. Ao final deste tutorial você terá uma aplicação básica no ZF2 com registro de usuário e autenticação.
Pré-requisitos
Para este tutorial presumo que você tenha instalado:
- PHP 5.3.3+ (com pdo-sqlite ou pdo-mysql)
- Um web server e conhecimentos de como configurar um virtual host
- Git (ou pelo menos a capacidade de acessar o Github e baixar o zip do projeto, o que vai te obrigar a baixar o framework de outro source e colocar no diretório apropriado)
Se você tiver o PHP 5.4+, tecnicamente nem precisará de um web server pra testar o Zend Framework 2, uma vez que você pode simplesmente utilizar o novo servidor para desenvolvimento embutido no PHP.
Um comentário sobre o composer
Enquanto o composer é uma maneira suportada de configurar o skeleton, eu prefiro simplesmente utilizar o git para esse tutorial. Na minha opinião isso torna as coisas mais simples e fáceis de debugar caso alguém tenha problemas em seguir o tutorial.
Passo 1: Obtendo o Skeleton do Zend Framework
O primeiro passo é clonar o skeleton application:
[user@workstation workspace]$ git clone --recursive https://github.com/zendframework/ZendSkeletonApplication.git
Depois, configure um vhost apontando para o diretório público da sua novo skeleton clonado. Neste ponto você já deve ser capaz de acessar http://seuvhost/ no seu navegador e ver o seguinte:
Se você estiver utilizando o PHP 5.4 e quiser utilizar o servidor embutido, simplesmente abra um novo terminal, cd
para o diretório public e execute:
[user@workstation public]$ php -S 8000
Com isso rodando você deverá ser capaz de acessar http://localhost:8000/ e visualizar a aplicação.
Passo 2: Configurando uma conexão com o banco de dados
Para o ZfcUser iremos necessitar de um banco de dados para guardar os usuários. Neste tutorial irei cobrir o MySQL e o SQLite, mas com o ZfcUser e o Zend\Db suportam muitos outros SGBDs.
Crie um novo arquivo ./config/autoload/database.local.php
e preencha-o com o seguinte:
Para o MySQL:
<?php return array( 'service_manager' => array( 'factories' => array( 'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', ), ), 'db' => array( 'driver' => 'pdo', 'dsn' => 'mysql:dbname=CHANGEME;host=localhost', 'username' => 'CHANGEME', 'password' => 'CHANGEME', ), );
Ou para o SQLite:
<?php return array( 'service_manager' => array( 'factories' => array( 'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', ), ), 'db' => array( 'driver' => 'pdo', 'dsn' => 'sqlite:' . getcwd() . '/data/users.db', ), );
Passo 3: Instalando o ZfcUser
Agora vamos instalar o ZfcUser. Primeiro cd
para o diretório vendor e execute os seguintes comandos:
[user@workstation vendor]$ git clone https://github.com/ZF-Commons/ZfcUser.git [user@workstation vendor]$ git clone https://github.com/ZF-Commons/ZfcBase.git
Nota: ZfcBase é apenas uma dependência do ZfcUser – contém algumas classes básicas que são úteis para diversos módulos.
Agora habilite os módulos editando ./config/application.config.php
e adicionando-os à array demodules:
<?php return array( 'modules' => array( 'Application', 'ZfcBase', 'ZfcUser', ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'module_paths' => array( './module', './vendor', ), ), );
Agora precisamos importar o schema do banco do ZfcUser. Se estiver usando o SQLite será necessário apenas uma linha de comando que deverá ser executada na raíz do projeto:
[user@workstation skeleton]$ cat vendor/ZfcUser/data/schema.sqlite.sql | sqlite3 data/users.db
(Se alguém souber como se faz isso no Windows, por favor poste nos comentários!)
Se estiver usando MySQL importe o arquivo ./vendor/ZfcUser/data/schema.sql
para o seu banco que configuramos antes.
Deve ser o suficiente! Tente acessar http://seuvhost/user e você será recebido com a tela de login:
Agora você já tem uma aplicação básica rodando com o Zend Framework 2 com suporte a registro e autenticação!
Recursos
- ZfcUser Wiki (inglês)
- ZF-Commons ZfcUser RFC (inglês)
Aproveite para dar uma conferida em algumas extensões para o módulo ZfcUser que já existem:
- BjyAuthorize – Adiciona suporte a ACL utilizando Zend\Acl.
- CdliTwoStageSignup – Adiciona uma etapa de verificação de e-mail ao processo de registro.
- CdliUserProfile – Um sistema de perfil de usuário.
- CdliAutogenUsername – Permite a utilização de nomes de usuário gerados automaticamente depois do registro.
- ScnSocialAuth – Adiciona autenticação através de redes sociais ao ZfcUser para sites como Google, Facebook, Twitter, Yahoo!, etc.
- EdpGithub – Adicionada autenticação do Github ao ZfcUser.
Se você estiver se perguntando “e agora?”, tire alguns minutos para ler o excelente tutorial de ZF2 do Rob Allen que explica a criar uma aplicação básica do zero e/ou venha conversar conosco no #zftalk.2 @ Freenode se tiver dúvidas.
Um abraço a todos e fiquem com Deus!
Rafael Jaques
Tutorial adaptado do original escrito por EvanDotPro: http://blog.evan.pro/getting-started-with-the-zf2-skeleton-and-zfcuser