|
Compartilhe seus conhecimentos
"É impossível para um homem aprender aquilo que ele acha que já sabe"
-Epíteto
|
![]() |
|
03/01/2010 por Otávio Augusto
O Symfony é um framework para desenvolvimento em PHP que segue adequadamente o conceito de orientação a objetos e vários padrões de projeto para desenvolvimento web, dentre eles o Modelo, Visão e Controle (MVC). Por causa dos seus recursos, esse framework tem se popularizado muito entre a comunidade de desenvolvedores. Em posts futuros, iremos falar mais sobre o Symfony. O nosso objetivo hoje é integrar o ExtJS com o Symfony, já existem alguns plugins, para essa tarefa, no entanto, a forma como eles funcionam pode não ser a mais adequada, ou desejada, para desenvolvedores ExtJS. Então vamos fazer essa integração de uma forma mais simples, para quem já está acostumado a desenvolver em ExtJS e mesmo para aqueles que ainda estão iniciando.
Etapa 1: Criando o projeto no Symfony
O primeiro passo é instalar o Symfony, não vamos explicar, neste post, como fazê-lo, mas se tiver alguma dúvida consulte a documentação oficial. Feito isso, vamos criar um novo projeto, no nosso caso, estamos nomeando-o de blogone:
php symfony generate:project blogone
O sfExtJSViewPlugin, destina-se a aplicação de backend, uma vez que pretendemos utilizar o ExtJS no frontend, então vamos criar a aplicação de backend:
php symfony generate:app backend
Feito isso, a primeira etapa está concluída.
Etapa 2: Instalando o sfExtJSViewPlugin
O sfExtJSViewPlugin foi desenvolvido pela Net On para tornar mais simples a integração Symfony + ExtJS. Ele baixado diretamente da área de plugins no site do Symfony pelo link: http://www.symfony-project.org/plugins/sfExtJSViewPlugin. A instalação pode ser feita de duas formas:
1. Utilizando a tarefa plugin-install do symfony:
php symfony plugin:install sfExtJSViewPlugin
Lembrando que para o comando acima funcionar, é preciso ter o PEAR instalado.
2. Descompactando o conteúdo do arquivo baixado e colocando o seu conteúdo na pasta plugins do projeto. Caso esta opção seja a escolhida, será necessário habilitar o plugin no arquivo ProjectConfiguration.class.php:
blogone/config/ProjectConfiguration.class.php
public function setup()
{ $this->enablePlugins(array( 'sfDoctrinePlugin', 'sfExtJSViewPlugin' )); Como o plugin foi instalado manualmente, é necessário habilitá-lo no framework manualmente também.
Para concluir a instalação, crie um arquivo module.yml dentro da pasta apps/backend/config/ e coloque o seguinte conteúdo:
apps/backend/config/module.yml
default:
view_class: sfExtJS Essa entrada, substitui o componente View padrão do symfony pelo plugin.
Etapa 3: Criando o módulo
Vamos criar um módulo chamado artigo na aplicação backend:
php symfony generate:module backend artigo
O comando acima criou uma nova estrutura de arquivos dentro do diretório apps/backend chamado artigo. Vamos alterar o código fonte do arquivo artigo/actions/actions.class.php e deixar a função executeIndex como a seguinte:
apps/backend/modules/artigo/actions/actions.class.php
public function executeIndex(sfWebRequest $request)
{ // array de resultados, em situações reais, capturados pelo plugin ORM $artigos = array(0 => array(
'id' => 1,
'titulo' => 'Primeira postagem',
'conteudo' => 'Conteúdo da primeira postagem'
));
//A propriedade result é obrigatória, para que o plugin gere o conteúdo json adequado
$this->result = array( 'results' => $artigos //results é o índice de onde será buscado o array de resultados, //opcionalmente pode-se passar um índice 'success' (booleano) e um 'total' para o total de resultados
//se não forem informados receberão respectivamente os valores true e count(results)
); } Se fizermos um acesso pelo navegador já teremos o resultado JSON desejado, para testar, vá no navegador e digite o endereço do seu projeto, no nosso caso: http://localhost/blogone/web/index.php/artigo, o resultado será:
({"success":true,"total":1,"results":[{"id":"1","titulo":"Primeira postagem", "conteudo":"Conte\u00fado da primeira postagem"}]})
Bem, feito isso, a terceira etapa já está concluída.
Resumindo
Hoje criamos o projeto symfony, instalamos o sfExtJSViewPlugin, criamos e editamos um módulo artigo e já temos um resultado JSON aceitável ao ExtJS. No próximo post, vamos criar a aplicação frontend com o ExtJS e escrever uma aplicação com um DataGrid que será carregado dinamicamente fazendo requisições ao método que criamos hoje. Até lá.
Comentários: Opa! e a parte 2 ? Por Daniel em 28/02/2010 às 22:39
Olá Daniel, bom ter perguntado. Vou disponibilizar a parte 2 ainda esta semana. Por Otávio Augusto em 02/03/2010 às 12:10
|
Categorias
Arquivo |
.png)
Comentários:
Categorias
Arquivo