PHP Conference Brasil



Documentos relacionados
Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Desenvolva rapidamente utilizando o frame work CakePHP. Elton Luí s Minetto

PHP Conference Brasil

Desenvolva rapidamente utilizando o framework CakePHP Elton Luís Minetto FISL 8.0

Guia de instalação para ambiente de Desenvolvimento LINUX

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Manual de Instalação

Instalação do Sistema de Atendimento ao Cidadão - SAC

CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

Procedimentos para Instalação do SISLOC

Procedimentos para Reinstalação do Sisloc

Procedimentos para Instalação do Sisloc

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Estado do Ceará Tribunal de Contas dos Municípios

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Omega Tecnologia Manual Omega Hosting

NetEye Guia de Instalação

SiGE - Sistema de Gerência de Eventos

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

Material de Apoio Configuração Auditoria Pós

Frameworks para Desenvolvimento em PHP Elton Luís Minetto

(token SafeNet e-gov - Plataforma Windows 32).

Integração com o Ambiente Virtual de Aprendizagem Moodle

Desenvolvendo Websites com PHP

ServerAdmin - Se o sistema detectar algo de anômalo, um mail será enviado a bazar@projeointegador.

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

SSE 3.0 Servidor de Notificação por . Cadastrando

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Aula 03 - Projeto Java Web

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

MANUAL DE UTILIZAÇÃO. Instalação do MV Portaria

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

MÓDULO MAGENTO. MANUAL DE INSTALAÇÃO v1.5

CRIANDO, ALTERADO E EXCLUINDO TABELAS, INSERINDO, SELECIONANDO, ALTERANDO E EXCLUINDO DADOS

Programação Web Prof. Wladimir

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

Criando, inserindo e exibindo PHP+MySql

NeXT Help Desk Manual do usuário. Abril/2011. NeXT Software

Instalando o WordPress em localhost

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

JobScheduler Empresa: Assunto: Responsável: Dados de Contato: Suporte: Comercial: Financeiro:

LINX POSTOS AUTOSYSTEM

Banco de Dados BrOffice Base

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO PORTAL DE LICITAÇÕES

Config. do módulo MSA com dispositivos REP.

Geris Engenharia e Serviços

Layout : Este layout desenvolvido com html5 e css3 e compatível com qualquer dispositivo, ou seja, ele se molda para qualquer resolução, tablet,

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Manual Instalação e-cidade-transparência no Ubuntu Server

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Manual de Instalação e Configuração do SQL Express

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Documentação Symom. Agente de Monitoração na Plataforma Windows

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Manual de Instalação (TEF LOJA)

NetEye Guia de Instalação

Voltado para novos usuários, este capítulo fornece uma instrução para edição de Leiaute do SILAS e suas funções.

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

SAD Gestor Gerenciador de Backup

Instalando e Configurando o Oracle XE

Smart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário

ÍNDICE 1 INTRODUÇÃO ACESSO AOS SISTEMAS DOCUMENTOS MANUTENÇÃO OCR REGISTRO DE DOCUMENTOS GERANDO DOCUMENTOS

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

Faculdade Boa Viagem Sistemas de Informação Gerenciais EXERCÍCIO PASSO-A-PASSO PEDIDOS E CONTROLE DE ESTOQUE. Microsoft Access.

Manual Captura S_Line

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

MANUAL DE INSTALAÇÃO DAS TECNOLOGIAS USADAS. Abrir o eclipse e ir em: help > software updates > find and install;

Manual de Instalação. Gerenciador de Ambiente Laboratorial - GAL. Versão 2.0

COORDENAÇÃO DE TECNOLOGIA (COTEC) MAIO/2010

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Manual de Instalação do Servidor Orion Phoenix Versão Novembro/2010

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Projeto Integrador Programação para Internet

UM PBX GENUINAMENTE BRASILEIRO

Menus Personalizados

Guia de Início Rápido

STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

SISTEMA DE ADMINISTRAÇÃO DE LOCAÇÃO IMOBILIÁRIA LISTA DE ATUALIZAÇÕES NOVAS

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP

Manual de Administração

Escrito por Lisiane Batista Neitzke Qui, 13 de Outubro de :11 - Última atualização Seg, 30 de Março de :38

Manual do Usuário. Instalação via Terminal. SIGA-ADM versão 12.06

MANUAL DE UTILIZAÇÃO

Manual de operação. BS Ponto Versão 5.1

Transcrição:

Symfony Elton Luís Minetto

Agenda O que é o Symfony Conceitos básicos Requisitos Instalação Configuração Aplicação de exemplo

O que é o Symfony Symfony é um framework de desenvolvimento para PHP5. Seu principal objetivo é aumentar a velocidade de desenvolvimento e manutenção de aplicações web. Ele reduz as tarefas de codificação repetitivas, usando os princípios de DRY(Dont Repeat Yourself) e KISS (Keep It Simple Stupid)

Vantagens Licensa flexível (MIT) Fácil de instalar e configurar Simples para aprender Altamente configurável: desde a estrutura de diretórios até bibliotecas de terceiros, quase tudo pode ser customizado Compatível com grande número de melhores práticas e design patterns do ambiente web Compatível com diversos bancos de dados Não re-inventa a roda. Usa outros projetos como Creole (banco de dados), Propel (mapeamento objeto-relacional) e Mojavi (MVC)

Conceitos - MVC Separação da estrutura da aplicação em três partes distintas: Modelo, Visão e Controle: Modelo: gerencia os dados da aplicação Visão: gerencia a saída gráfica e textual da parte da aplicação visível ao usuário Controle: interpreta as entradas de mouse e teclado do usuário, comandando a Visão e o Modelo para se alterarem de forma apropriada.

Conceitos - Diretórios config/ Configurações gerais do projeto. data/ Arquivos de dados do projeto, esquema do banco de dados. sql/ Arquivos com instruções SQL. doc/ Documentação do projeto. api/ Documentos gerados pelo phpdoc lib/ Classes e bibliotecas de terceiros model/ Modelo de objetos do projeto log/ Arquivos de log test/ Unidades de testes utilizadas pelo framework web/ Diretório raiz do servidor web css/ Onde se armazena arquivos de css images/ Onde se armazena as imagens da aplicação js/ Onde se armazena os javascripts da aplicação Diretório de upload para a aplicação uploads/

Requisitos Servidor web com as funcionalidades: sessions, mod_rewrite (não obrigatório mas aconselhável) PHP 5 PEAR (não obrigatório) Uma base dados. É suportado MySQL, PostgreSQL, Oracle, MSSQL e outras bases suportadas pelo Creole.

Instalação A instalação pode ser feita usando-se o PEAR ou usando o sandbox, que é um esqueleto de aplicação que pode ser copiado e usado como modelo para iniciar o desenvolvimento. A instalação usando-se o sandbox é a mais fácil e prática, principalmente em servidores onde o PEAR não está disponível. wget http://www.symfony-project.com/get/sf_sandbox.tgz tar xfvz sf_sandbox.tgz sudo mv sf_sandbox /var/www/symfony sudo chown -R www-data.www-data /var/www/symfony/cache

Instalação Para testar a instalação pode-se entrar no navegador: http://localhost/symfony/web/index.php/ Caso ocorra algum erro pode ser a configuração do php.ini, magic_quotes_gpc que deve estar em Off

Configuração Apache É necessário duas configurações: o mod_rewrite e o AllowOverride precisam estar ativos. Alterar o httpd.conf (apache2.conf no Ubuntu) e descomentar ou adicionar as linhas : LoadModule rewrite_module modules/mod_rewrite.so AddModule mod_rewrite.c Adicionar a linha abaixo no DocumentRoot e reiniciar o Apache: AllowOverride all

talk is cheap......show me the code!

Desenvolvendo A aplicação Um professor gostaria de uma aplicação web simples para manter-se informado sobre os livros que empresta a seus alunos. Quanto ele entre no sistema pode visualizar e alterar os alunos cadastrados e também os empréstimos.

Desenvolvendo A modelagem

Desenvolvendo O Symfony segue algumas regras de padronização para a base de dados: Colunas com nome id são consideradas chaves primárias Colunas com nome finalizando com id são consideradas chaves estrangeiras e relacionadas com outras tabelas de acordo com a primeira parte do nome. Ex: livro_id Colunas chamadas created_at e updated_at são automaticamente consideradas do tipo timestamp e são atualizadas automaticamente.

Desenvolvendo Modelagem adaptada

Desenvolvendo Criando um projeto Como estamos usando o sandbox, não é necessário criarmos o projeto, pois o sandbox é um projeto básico. Precisamos somente criar as aplicações: cd /var/www/symfony sudo./symfony init-app conference (é necessário o sudo para ele alterar as permissões dos diretórios de cache) sudo chown -R elm.elm apps/conference/

Desenvolvendo Criando a base de dados. O Symfony precisa de uma definição da base de dados no arquivo config/schema.xml. Este arquivo pode ser criado manualmente ou apartir de uma base de dados existente. Neste caso criamos as tabelas na base de dados e iremos gerar este arquivo automaticamente. Para gerar o arquivo é preciso configurar a conexão com a base de dados. O arquivo config/propel.ini deve ser configurado: propel.database.url = mysql://usuario:senha@localhost/database

Desenvolvendo Para gerar o arquivo deve-se executar:./symfony.sh propel-build-schema e o arquivo config/schema.xml está criado!

Desenvolvendo Gerando os modelos Depois que o schema.xml foi criado podemos gerar os modelos baseados na base de dados. No Symfony o mapeamento objeto-relacional é tratado pelo Propel. Para gerar os modelos pode-se executar:./symfony.sh propel-build-model Serão criados os arquivos dos modelos: lib/model/om/baselivrospeer.php lib/model/om/baselivros.php lib/model/om/baseusuariolivrospeer.php lib/model/om/baseusuariolivros.php lib/model/om/baseusuariospeer.php lib/model/om/baseusuarios.php

Desenvolvendo Agora podemos gerar as funções básicas de cada tabela para podermos testar. Antes devemos configurar a base de dados da aplicação, editando o arquivo: config/databases.yml O arquivo fica desta maneira: all: propel: class: sfpropeldatabase param: phptype: mysql host: localhost database: database username: youruser password: yourpasswd

Desenvolvendo CRUD Gerando o CRUD:./symfony propel-generate-crud aplicacao modulo Modelo Neste exemplo:./symfony propel-generate-crud conference livro Livro./symfony propel-generate-crud conference usuario Usuario./symfony propel-generate-crud conference usuario_livro UsuarioLivro Foram criados diretórios em: apps/conference/modules/livro apps/conference/modules/usuario Com os arquivos gerados. Sempre que um novo módulo é adicionado é preciso limpar o cache de configurações, usando:./symfony cc conference config

Desenvolvendo Testando: http://localhost/symfony/web/conference/livro/index

Customizando Alterando o Layout geral O layout geral da aplicação pode ser alterado no arquivo apps/conference/templates/layout.php Podemos adicionar um cabeçalho e rodapé para as páginas: <body> <div id="header"> <?php echo link_to('inicial', '@homepage')?> </div> <?php echo $sf_data->getraw('sf_content')?> <div id="content_bar"> <?php echo link_to(image_tag('http://www.symfonyproject.com/images/symfony_logo.gif', 'alt=symfony'), 'http://www.symfony-project.com')?> </div> </body>

Customizando Alterando o Layout de um módulo Queremos alterar a apresentação do módulo livros. Os arquivos se encontram em apps/conference/modules/livro/templates/

Customizando O Symfony automaticamente reconhece os relacionamentos entre as tabelas e cria métodos que facilitam a manipulação dos dados. Por exemplo, podemos descobrir quantos livros um determinado usuário emprestou. Para isso devemos alterar a visão, já que a parte do modelo e o controlador já contemplam esta informação. Cada módulo criado possui um diretório em apps/conference/modules No diretório actions está o controlador, e no diretório templates encontram-se as visões.

Customizando Iremos alterar a visão listsuccess.php, que mostra a lista de usuários e é ativada pelo método executelist do controlador. O seguinte código foi adicionado no listsucess.php: <td><?php echo count($usuario->getusuariolivros());?></td> Desta forma é selecionado quantos livros o usuário tem cadastrado na tabela usuario_livros.

Customizando Criando uma busca de livros usando Ajax. Precisaremos alterar o controlador e criar as visões para a busca. No arquivo apps/conference/modulo/livro/actions/actions.class.php iremos adicionar dois métodos. O executebusca() que irá invocar a visão com o formulário e o método executeresultado() que irá fazer a consulta no banco de dados e invocar a visão com os resultados:

Customizando //mostra o formulario public function executebusca() { } //faz a consulta public function executeresultado() { //pega o valor vindo do formulario $titulo = $this->getrequestparameter('titulo'); //cria um novo critério de busca $c = new Criteria(); //usa o campo titulo e o conectivo LIKE do SQL $c->add(livropeer::titulo, "$titulo%", Criteria::LIKE); //executa a consulta $this->livros = LivroPeer::doSelect($c); return sfview::success; }

Customizando O próximo passo é criar os arquivos das visões: apps/conference/modules/livro/templates/buscasuccess.php <?//indica que irá usar o helper de javascript para o Ajax echo use_helper('javascript') ;?> <?//cria um formulário cuja ação será executada usando Ajax echo form_remote_tag(array( 'update' => 'resultado', 'url' => 'livro/resultado', ));?> <label for="titulo">título:</label> <?php echo input_tag('titulo')?> <?php echo submit_tag('buscar')?> </form> <div id='resultado'></div>

Customizando apps/conference/modules/livro/templates/resultadosuccess. php <h2>livros Encontrados</h2> <? foreach($livros as $livro) { echo $livro->gettitulo().'<br>'; }?>

Conclusões Desenvolver usando frameworks facilita a padronização e trabalho em equipe. Acelera o ciclo de desenvolvimento. Symfony é altamente flexível. Seu aprendizado é um pouco complexo no início mas sua praticidade compensa.

Referências http://www.symfony-project.com http://www.yaml.org/ http://propel.phpdb.org/trac/

Contato Elton Luís Minetto eminetto@gmail.com http://www.eltonminetto.net