segunda-feira, 31 de agosto de 2015

Inslatar o Zend Framework 2 "sem" o composer.phar

Esses dias fui instalar o zend framework 2 fazendo o clone pelo git como sempre fiz e percebi que o pacote não tinha o arquivo composer.phrar. Pesquisando na internet consegui encontrar a solução.

Segue abaixo o passo-a-passo da instalação (linux/mac):

1 - Vá até o diretório desejado
cd /var/www/html/


2 - Criar pasta do projeto
mkdir zf2teste


3 - Baixar o composer.phrar
curl -s https://getcomposer.org/installer | php --


4 - Instalar o Zend Framework 2 no diretório desejado
php composer.phar create-project --stability="dev" zendframework/skeleton-application zf2teste

5 - Mover o arquivo composer.phrar para a pasta do projeto, para futuras atualizações
mv composer.phar /zf2teste

6 - Iniciando o servidor emputido
cd zf2teste/public
php -S localhost:8888

7 - Para testar se a instalação está correta, abra o navegador e acesse:
http://localhost:8888

8 - Para instalar o doctrine 2, vá na pasta root do zend framework onde está o arquivo composer.phrar e digite o seguinte comando:
php composer.phar require doctrine/doctrine-orm-module

Mais informações:

http://framework.zend.com/manual/current/en/ref/installation.html

https://github.com/zendframework/ZendSkeletonApplication

https://github.com/doctrine/DoctrineORMModule

sexta-feira, 14 de agosto de 2015

Sessions no Zend Framework 2

Existem diversos modos de utilizarmos as sessões no Zend Framework 2, vamos aprender um dos modos mais simples que é usando a classe Container.

segue abaixo um exemplo de como utilizar:


01 - criando a sessão e setando valores

use Zend\Session\Container;

$sessionContainer = new Container('admin_auth');
$sessionContainer->usuario_id = $data->getAdminId();
$sessionContainer->usuario_email = $data->getAdminEmail();

02 - Recuperando os dados setados na sessão

$sessionContainer = new Container('admin_auth');
$serviceLog = $this->getServiceLocator()->get('Usuario\Service\AdminLogService');

return $serviceLog->insert(array('admin_id' => $sessionContainer->admin_id, 'admin_data' => date('Y-m-d')));

Mais informações:

http://framework.zend.com/manual/current/en/modules/zend.session.container.html

quarta-feira, 12 de agosto de 2015

FlashMessager no Zend Framework 2

O Zend Framework 2 possui um componente chamado FlashMessager que nos ajuda a mostrar mensagens nas views.

Segue um exemplo de como utilizar esse recurso:

01 - Na classe de controller:

public function deleteAction($id){
     
     $service = $this->getServiceLocator()->get('Administrador\Service\');

     if($service->delete($id)){
          $this->flashMessenger()->addSuccessMessage('Excluído com sucesso.');
     }
     else{
          $this->flashMessenger()->addErrorMessage('Erro ao excluir.');
     }

     return $this->redirect()->toRoute('adm-home');

}

02 - Na view

<?php
     
     echo $this->flashMessenger()->renderCurrent('success', array('alert', 'alert-success'));
     echo $this->flashMessenger()->renderCurrent('error', array('alert', 'alert-danger'));

?>

Mais informações:

http://framework.zend.com/manual/current/en/modules/zend.view.helpers.flash-messenger.html

http://framework.zend.com/apidoc/2.2/classes/Zend.Mvc.Controller.Plugin.FlashMessenger.html

segunda-feira, 10 de agosto de 2015

Hydrator - Zend Framework 2

O Hydrator é um componente do Zend Framework 2 que nos ajuda a transformar um objeto em array e um array em objeto.

Segue um exemplo de como usa-lo na sua classe de serviço:

<?php

namespace Administrador\Service;

use Zend\Stdlib\Hydrator\ClassMethods;

class AdministradorService{

private function toArray($obj) {        
$classMethod = new ClassMethods();        
       return $classMethod->extract($obj);
}
   
private function toObject(Array $data, $entity) {        
$classMethod = new ClassMethods();        
return $classMethod->hydrate($data, $entity);
}

}

?>

Mais informações:

http://framework.zend.com/manual/current/en/modules/zend.stdlib.hydrator.html

http://framework.zend.com/manual/current/en/modules/zend.stdlib.hydrator.strategy.html