Ajax Symfony

15
Symfony com AJAX por Rafael S. T. Vieira

description

Uma apresentação sobre Symfony com AJAX

Transcript of Ajax Symfony

Page 1: Ajax Symfony

Symfony com AJAXpor Rafael S. T. Vieira

Page 2: Ajax Symfony

Requisitos Operacionais

● Apache com PHP

● PEAR(normalmente, acompanha o PHP)

Requisitos Conceituais

Requisitos Operacionais

● API do Symfony

● PHP

● YAML ou XML

Page 3: Ajax Symfony

Instalação

● pear channel-discover pear.symfony-project.com

● pear install symfony/symfony

Obs: É necessário que a versão do pear seja 1.4+

Page 4: Ajax Symfony

Projetos no Symfony

Exemplo:

{Projeto} {Aplicação}+;{Aplicação} {Módulo}+;{Módulo} {Página}+;{Página} {Ação}{Template};

Page 5: Ajax Symfony

Criando um projeto

● symfony new projeto

● symfony app aplicacao

● symfony module aplicacao modulo

ou● symfony init-project projeto

● symfony init-app aplicacao

● symfony init-module aplicacao modulo

Page 6: Ajax Symfony

Estrutura de Diretórios ● apps/: contém os módulos, ações e templates

● batch/

● cache/

● config/: contém a configuração do symfony e acesso a bds

● data/

● doc/

● lib/: contém as classes para acesso ao modelo relacional

● log/

● plugins/

● test/

● web/: contém os modos de exibição, imagens e scripts

Page 7: Ajax Symfony

Ambientes de Execução

– Produção(aplicacao.php, 1º index.php)– http://localhost/~rafaelstv/meuprojeto/web/teste.php/modulo/acao

– Desenvolvimento(aplicacao_dev.php)– http://localhost/~rafaelstv/meuprojeto/web/teste_dev.php/modulo/acao

– Teste(CLI)– symfony test-all– symfony test-functional aplicacao– symfony test-unit unidateTeste

Obs: Ver Exemplo Prático

Page 8: Ajax Symfony

Criando um banco de Dados

● schema.yml(2: nome da tabela)

1. conexao:

2. paises_latinos:

3. _atributtes: { phpName: Pais }

4. id:

5. nome: varchar(100)

6. capital: varchar(100)

Page 9: Ajax Symfony

Configurando o BDdatabases.yml:

all:

propel:

class: sfPropelDatabase

param:

dsn: mysql://rafaelstv@localhost/continentes

propel.ini:propel.database.createUrl = mysql://rafaelstv@localhost/

propel.database.url = mysql://rafaelstv@localhost/continentes

symfony propel-build-all

Page 10: Ajax Symfony

Acessando os dadossymfony propel-generate-crud teste banco PaisesLatinos

// actions/actions.class.php

index : redireciona para list

list : exibie todos os registros

show : exibe um registros por vez

edit : exibe um formulario para modificar um registro

update : ação chamada pelo edit

delete : deleta um registro

create : cria um registro

// templates/

editSuccess.php : modo de Edição

listSuccess.php : modo de Listagem

showSuccess.php : modo de Detalhes

* Criar um registro

* Recuperar um registro

* Update um registro

* Deletar um registro

Page 11: Ajax Symfony

Adicionando AJAX(funções remotas)

● update

● url

● position

● 'confirm' => 'Are you sure?’

● 'condition' => "$('elementID') == true",

● 'script' => true

Obs: É preciso incluir o auxiliar use_helper('Javascript')

● Callbacks

– before

– after

– loading

– loaded

– interactive

– success

– failure

– 404

– Complete

Page 12: Ajax Symfony

Observando Objetos (ex. 1)

● observe_field

● submit_to_remote

● Ver observa/index

Page 13: Ajax Symfony

Eventos Temporais (ex. 2)

● periodically_call_remote

● ver: clique/index

Page 14: Ajax Symfony

Eventos Manuais (ex. 3)

● link_to_remote: execução uma ação AJAX via link

● form_remote_tag: envia um formulário via ajax

– Ver: ajax/index

Page 15: Ajax Symfony

FIM

● Bibliografia:– http://www.symfony-project.org/

– http://pear.php.net/

– http://www.yaml.org/

– http://www.php.net/