Filed under Zend Framework

Usando componentes do Zend Framework

Uma das coisas mais legais do Zend Framework é a forma como ele foi construído, na forma de componentes que podem ser usados separadamente ou até substituídos. Dessa forma é possível usar somente alguns componentes em qualquer projeto, desenvolvido com outros frameworks ou mesmo sem nenhum. Exemplos de componentes que podem ser bem úteis:

- Zend_Mail
- Zend_Cache
- Zend_Db
- Zend_Config
- Zend_Date
- Zend_Log

Entre outros.
Um exemplo bem simples, usando o Zend_Cache:

<?php
//include do zend framework
$includePath  = get_include_path();
//o : é o separador de diretórios no Unix. No Windows seria ;
$includePath .= ':/var/www/html/library/';
set_include_path($includePath);

//inicia o autoloader, responsável por incluir os arquivos dos componentes
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);

$frontendOptions = array(
    'lifetime' => 7200, // tempo de vida
    'automatic_serialization' => true
);
$backendOptions = array('cache_dir' => '/tmp');
// criando uma instancia do cache
$cache = Zend_Cache::factory('Core',//frontend
    'File',  //backend
    $frontendOptions,
    $backendOptions
);

if(!$result = $cache->load('cachePosts')) {
      //aqui podemos usar o Zend_Db, por exemplo
      $result = 'aqui vai o processamento, como buscar os dados do banco';
      $cache->save($result, 'cachePosts');
}
echo $result;


Dessa forma é fácil de extender seu projeto usando componentes bem estruturados e testados.

Meus dois centavos sobre o MicroPHP Manifesto

Nos últimos dias um post tem gerado alguma discussão entre os programadores PHP: o MicroPHP Manifesto (post original e o site que foi gerado depois)
Confesso que concordo com vários pontos levantados pelo Ed Finkler no seu artigo, principalmente no ponto de que alguns frameworks estão ficando muito mais complexos do que o necessário.
Logo depois da publicação do post surgiram algumas respostas (essa e essa, por exemplo), umas concordando e outras crucificando o autor.
A minha opinião é: depende :) Depende do projeto. Estou trabalhando atualmente em um projeto enorme, com vários requisitos técnicos bem avançados, com equipes trabalhando remotamente e paralelamente. Neste projeto estamos usando Zend Framework e Doctrine e foi a melhor decisão.
Ao mesmo tempo precisei ministrar um curso onde o foco eram tecnologias bem específicas e não precisava adicionar complexidade, então a melhor opção foi o Slim, conforme comentei em outro post. Aliás, gostamos tanto do Slim que estamos usando em outros pequenos projetos da Coderockr. Gosto também da abordagem do Symfony, seus componentes e o Silex, micro-framework baseado nestes componentes.
Eu acho que o post teve um bom efeito, que foi gerar a discussão sobre o assunto, mas ele não deve ser levado tão ao pé da letra e nem gerar flamewars intermináveis. A idéia é sempre analisar qual é a melhor situação para seu projeto, e mesmo usando algo completo, como o Zend Framework, tentar sempre manter o desenvolvimento o mais simples e bem implementado.

Etiquetado

PHPConference 2011

Na última semana estive em Osasco-SP para a sexta edição do PHPConference, o maior evento de PHP da América Latina.
Novamente pude rever os amigos e lendas da programação PHP, além de conhecer novas pessoas, algumas que eu conhecia via Twitter. Na minha opinião essa é a parte mais importante do evento, a troca de conhecimentos que acontece fora das salas de palestras.
Quanto as palestras, não consegui ver todas as que gostaria, mas as que consegui ver foram muito boas.
Assistindo algumas palestras e conversando com algumas pessoas a sensação que tenho é que o “mundo PHP” ganhou nos últimos meses um novo impulso de qualidade e inovação. Fazia um bom tempo que eu não me sentia empolgado com o ambiente, mas com coisas legais como bancos NoSQL, novos frameworks como Symfony 2, Zend Framework 2, diversos micro frameworks, o Service Oriented Architecture finalmente deixando de ser “tendência” e virando realidade, o MVC evoluindo para algo novo, tudo isso abre novos horizontes para os profissionais.
O material da minha palestra está no meu Speakerdeck e os comentários estão no Joind.in
E que venha o PHPConference 2012!

Pós-graduação em Umuarama

Fui convidado a ministrar uma disciplina na pós-graduação “Desenvolvimento de Software para Internet e Dispositivos Móveis” que vai acontecer em 2012, na cidade paranaense de Umuarama. A disciplina vai ser “Framework de desenvolvimento PHP”, onde vou apresentar o Zend Framework.
Mais informações no site da Faculdade ALFA

Palestra no PHP Conference 2011

Além do tutorial também vou palestrar no PHP Conference 2011!
A minha palestra será no dia 03/12, as 12:00, com o título “Otimizando aplicações com Zend Framework”
Aproveite e faça sua inscrição para o evento. Imperdível é pouco!

Vídeo da apresentação TcheLinux – Otimizando aplicações Zend Framework

Complementando o post anterior, com os slides da palestra no Tchelinux, o pessoal publicou no Blip.tv o vídeo da minha apresentação

P.S.: não me responsabilizo por pesadelos ou traumas causados pela visão dantesta :D

Material da palestra em Bento Gonçalves

No último fim de semana estive em Bento Gonçalves,RS, para palestrar no evento do Tchelinux.
Primeiramente, gostaria de parabenizar o pessoal da organização, em especial o Rafael Jaques, pelo sucesso do evento. Ótimas palestras, boas conversas nos corredores, e a hospitalidade do pessoal do RS são sempre legais.
Coloquei o material da minha apresentação no slideshare

Etiquetado , , ,

Minicurso de Zend Framework no Paraná

Nos dias 18 e 19 de Agosto eu vou ministrar um minicurso sobre o Zend Framework na cidade paranaense de Guarapuava. As inscrições já estão abertas, no site do evento

Palestra em Bento Gonçalves

No dia 13 de Agosto eu vou ministrar uma nova palestra, no tradicional evento TcheLinux que vai acontecer em Bento Gonçalves, no RS.
A palestra é sobre “Otimizando aplicações desenvolvidas com Zend Framework” e os detalhes do evento podem ser encontrados neste site:
http://tchelinux.org/site/doku.php?id=evento_2011_agosto_bento

E dá-lhe cerveja Polar e vinho para esquentar no frio do rio grande :)

Usando o Zend Framework via CLI

Existem várias tarefas dentro de um sistema web que podem/devem ser executadas direto no servidor, sem a interação com o usuário, como workers do Gearman, tarefas agendadas na crontab do Linux, etc.
Estas tarefas podem ser executadas com o PHP-CLI (Command Line Interface). Na documentação oficial do PHP existem exemplos bem fáceis de entender e extender. Nesse post vou comentar como usar o CLI em projetos com o Zend Framework.
O primeiro passo é criar um Bootstrap simplificado, que vou chamar de clip.php. Ele tem a mesma tarefa do Bootstrap normal de uma aplicação Zend Framework, com algumas coisas a menos como o uso das variáveis $_GET e $_POST. Eu criei dois exemplos de cli.php, um para projetos usando módulos e outro para projetos mais simples.
Para usá-los basta usar o projeto exemplo que está no Github ou baixar apenas o cli.php e customizá-lo para seu projeto. Para executar é:

php cli.php -e development -a default/index/index

Você precisa ter o executável do PHP em seu Path. No Windows você iria executar:

php.exe cli.php -e development -a default/index/index

Os parâmetros significam:
-e = ambiente que você está executando. Se não passar parâmetro o script vai considerar como “development”. Isso é usado para ler as configurações de caminhos e dados do config.ini
-a = o que você irá executar. O formato é modulo/controlador/acao/param/valor

Se precisar passar parâmetros para a ação é só adicioná-los no comando, da mesma forma como faria em um navegador. Exemplo:

php cli.php -e development -a default/index/index/id/10/nome/elton

Desta forma a action indexAction do controlador IndexController vai poder acessar os parâmetros id e nome usando o comando:


$id = $this->getRequest()->getParam('id');
$nome = $this->getRequest()->getParam('nome');

No caso de não estar usando módulos no seu projeto basta invocar sem o nome do módulo:

php cli.php -e development -a index/index/id/10/nome/elton

Nós usamos bastante esse recurso em diversas tarefas agendadas nos projetos da Coderockr. É algo realmente útil.

Etiquetado , ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 1.472 other followers