CakePhp. Desenvolvimento Web Rápido (e Indolor) Alisson S A Nascimento alisson.sa.nascimento@gmail.com



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

PHP Conference Brasil

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

Mini-curso de CakePHP

Módulo Básico. Assando Sites. Relacionamentos, Validação, Consultas e Páginas Dinâmicas. Assando Sites

Sumario. Banco de Dados O que eh CakePHP Instalando o Cake Models, Controllers e Views Mais ferramentas do CakePHP Cake Bake a magica do CakePHP

Curso de CakePHP. Curso de CakePHP Página 1 /69

Nos Trilhos com RAILS. Sylvestre Mergulhão

CakePHP. Tão fácil quanto fazer um bolo!

Pmail Project. The open sourse project. Felipe Theodoro Gonçalves / Pmail - GNU General Public License version 3 (GPLv3)

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Um olhar para 5 alternativas ao WAM

Desenvolvendo em MVC com Zend Framework

CakePHP Cookbook Documentation


Curso de Iniciação ao Framework PHP Yii

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

Ruby on Rails Intermediário

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO

Frameworks - Grails. Aécio Costa

Programação Web Aula 10 - Testes, Javascript, Ajax

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

FRWTC800 - Desenvolvimento Web com Ruby on Rails

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Protótipo de um framework MVC para aplicações PHP de pequeno porte

ZendWi Presentation 19/10/2012

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto

Começando com Zend Framework

Certifico que este documento da empresa COOPERATIVA DE CRÉDITO DOS MAGISTRADOS, SERVIDORES DA JUSTIÇA DO ESTADO DE GOIÁS E EMPREGADOS DA CELG LTDA,

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 08/05/2015 da Empresa UNIMED JUIZ DE FORA COOPERATIVA DE TRABALHO

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 27/11/2014 da Empresa COOPERATIVA DOS SUINOCULTORES DE PONTE NOVA E

Junta Comercial do Estado de Minas Gerais Certifico que este documento da empresa COOPERNOVA COOPERATIVA NOVALIMENSE DE TRANSPORTE DE CARGAS E

Certifico que este documento da empresa UNIMED MONTES CLAROS COOPERATIVA DE TRABALHO MEDICO, Nire: , foi deferido e arquivado na Junta

Certifico que este documento da empresa CELG DISTRIBUIÇÃO S.A. - CELG D, Nire: , foi deferido e arquivado na Junta Comercial do Estado

Certifico que este documento da empresa COOPERATIVA DE CRÉDITO LIVRE ADMISSÃO DO VALE DO SÃO PATRÍCIO LTDA, Nire: , foi deferido e

Certifico que este documento da empresa DME POCOS DE CALDAS PARTICIPACOES S.A. - DME, Nire: , foi deferido e arquivado na Junta Comercial

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 23/04/2015 da Empresa OMEGA GERACAO S.A., Nire e

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 22/05/2015 da Empresa UNIMED BELO HORIZONTE COOPERATIVA DE TRABALHO

pág. 2/18

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 13/05/2015 da Empresa ENERGISA S/A, Nire e protocolo

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 17/07/2015 da Empresa OMEGA GERACAO S.A., Nire e

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 21/11/2014 da Empresa ANDRADE GUTIERREZ S/A, Nire e

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 19/10/2015 da Empresa COOPERATIVA DE CONSUMO DOS SERVIDORES DO

Junta Comercial do Estado de Minas Gerais Certifico registro sob o nº em 13/04/2016 da Empresa ALGAR TI CONSULTORIA S/A, Nire e

Produtividade na web com Groovy e Grails

Ademir C. Gabardo. Novatec

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

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

Capítulo 04: Persistência com SQLite

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

ZEND F r a m e w o r k

Framework MIOLO 2.5 Tutorial: Criando um módulo

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

Para contemplar essa portaria será necessário parametrizar o aplicativo conforme segue:

CakePHP um framework Web MVC:

PROJETO PEDAGÓGICO DE CURSOS

SenchaTouch + PhoneGap

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

Construindo uma ASP.Net MVC 4 Web Application usando Bootstrap no front-end

Ajax com R ails, interatividade e usabilidade ao alcance de todos

O Framework Rails. Diego Rubin

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROGRAMAÇÃO PARA INTERNET TUTORIAL DE APLICAÇÃO JSF DESENVOLVIDO COM A FERRAMENTA ECLIPSE LUNA

formação em WeB developer

Entendendo Rails. Fabio Akita Surgeworks Brazil Rails Practice Manager

Desenvolvimento Web TCC Turma A-1

SAMUO APP: MANUAL TÉCNICO

Grails e as novidades

Desenvolvimento de Aplicações para Internet Aula 8

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Table of Contents...1. Annex A...4. Work plan...4. Annex B...6

Frameworks para Desenvolvimento Rápido de Aplicações Web: um Estudo de Caso com CakePHP e Django

BANCO DE DADOS E UMA APLICAÇÃO WEB

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

Marcio Maciel & Vanessa Me Tonini. Boas práticas de desenvolvimento de temas para Magento

Grails. C ada vez mais aplicações corporativas são desenvolvidas ou migradas para a plataforma web.


Versão 0.1. Manual FoRc. Última Atualização: Maio/2007. Daniel Schmitz

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

ASP.NET MVC. View Engine: linguagem usada para gerar código HTML. Duas opções: Razor View Engine ou ASPX View Engine. Selecionar Razor.

Escrito por Neri Neitzke Qua, 25 de Junho de :51 - Última atualização Qua, 25 de Junho de :54

Elgg - Participatório. Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR c3participa@c3sl.ufpr.br

C o m p u t a ç ã o M ó v e l Brayan Neves

INTEGRANDO OS FRAMEWORKS CAKEPHP E

Curso De PHP. Aula 4. Formulários. Cookies. Session. Mail

O que é um framework?

Aplicação do Framework CakePHP para o desenvolvimento de WebSite

Criação de uma aplicação Web ASP.NET MVC usando Code First

II Semana de Tecnologia da Informação. Rails Framework

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

Test-driven Development no Rails Começando seu projeto com o pé direito. 2007, Nando Vieira

UNIDADE III JAVA SERVER PAGES

Aplicações desktop a jato com JRuby e Netbeans

Estudo e avaliação de ferramentas para desenvolvimento ágil

WebWork 2. João Carlos Pinheiro.

Transcrição:

CakePhp DesenvolvimentoWebRápido(eIndolor) AlissonSANascimento alisson.sa.nascimento@gmail.com

Roteiro AidéiadeumFramework OqueéoCakePhp? Aestruturadosdiretórios ModelViewControl Componentes,Plugins,VendorseHelpers Bake AplicaçãoRápida Referências

AidéiadeumFramework Arquiteturapré definida Classesebibliotecasauxiliares Estruturadediretórios Códigosre usáveis Deveserfácildeusar,extensível,seguro!

PorqueusarumFramework? Agilidadenoprocessodedesenvolvimento Aplicaçõesmaisestáveis Organizaçãonocódigoenosarquivos ComandosSQLesquecidosporumtempo Foconalógicadenegócio Designereprogramadortrabalhandoemparalelo

OqueéCakePhp FrameworkfeitoemPHP! BaseadonoRubyonRails MVC(ModelViewControl) ActiveRecordMapeamentoER OO ActiveSuportBibliotecasbase ConvençãoenãoConfiguração Scaffolding Atualmente Stable1.1.19.6305 RC1.2.0.7296RC2,inclusivenorepositóriodoDebian

Quemestáusandohoje? Twinbler http://twimbler.com/ MapMe www.mapme.com NoseRub www.noserub.com acoruja www.acoruja.com Scratch http://scratch.mit.edu Sistemaqueseportacomoumprotocoloderedes sociaisdescentralizadas Scratchéumanovalinguagem deprogramaçãoquetornafácil paravocêcriarsuaspróprias históriasinterativas, animações,jogos,música,e arte etambémcompartilhar Mambo5CMS www.mamboserver.com www.eberfdias.com MozillaAddons https://addons.mozilla.org/pt BR/firefox/ suascriaçõesnainternet.

Configuração ModRewrite(/etc/apache/apache.conf) AllowOverrideAll(/etc/apache/sites enable/000 default) ex.:localhost/cake/meucontroller/minhaaction/1/teste Controller Action Parâmetros

EstruturadosDiretorios app views config elements controllers models errors helpers layouts pages plugins temp vendors views webroot webroot css cake files docs img vendors js

Model View Control

Model Control View Aprimeirainterfacelógicadaaplicação Validaçãodosdados Requisiçõesaobancodedados Salvararquivo: Porpadrãoprocuraatabelanobanco RAIZ/app/models/exemplo.php atabelaexemplos

Model Control View <?php classeventoextendsappmodel{ var$name='evento'; var$validate=array( 'id'=>valid_not_empty, 'nome'=>'/^.{10,64}$/', ); }?>

Model Control View Regrasdenegócio Geralmenterequisitamosobanconoscontrollers PodeounãosercorrelacionadocomumModel ObjetosdoModeljáestãocriados Salvararquivo: RAIZ/app/controllers/exemplos_controller.php PorpadrãoprocuraoModel: exemplo.phpcomaclasseexemplo

Model Control View <?php classeventoscontrollerextendsappcontroller{ var$name='eventoscontroller'; functionverevento($id){ if(!empty($id)){ this >set('eventos',findbyid($id));...?> CadaActionouFunçãopodeterumaView!

Model Control View Ainterfacecomousuário Forneceumamaneiradevisualizarosdados Nãoérecomendávelprocessardadosnasviews Podemosterváriassaídas:HTML,PDF,AJAX,XML... requisitando:localhost/cake/eventos/verevento/1 oarquivodevisualizaçãoaserrespondidoseria: RAIZ/app/views/eventos/ver_evento.thtml(.ctp)

Model Control View <h2>evento<?phpecho$eventos['0']['evento']['id'];?></h2> <p> <?phpforeach($eventosas$evento): echo($evento['evento']['nome']); endforeach;?> </p>

EstruturadosDiretórios app config elements controllers errors helpers views components models plugins layouts temp pages vendors views css webroot files img js cake docs vendors webroot

ComponentesePlugins Componentessãopartesquecompõemumconjunto Umpedaçodecódigore usável Temcomportamentoesperado Sessions,Cookies,Email,ACL(AccessControlList), RSS(FeedArticles)

ComponentesePlugins Pluginssãoadicionadospararealizarumatarefanão nativa Comportamentonãoépredefinido PhpGacl,Jquery,Tablesorter...

HelperseVendors Helperssãoclassesquetemfunçõesquesão comumentenecessáriosparaformatareapresentar osdadosdeformaútil. Sãodefinidosnoscontrollerseusadosnasviews $helpers=('html','form','ajax','javascript');(controller) <?phpecho$html >submit('adicionar')?>(view)

HelperseVendors Vendorssãoasbibliotecasexternasencontradasno diretório/vendor. Podesertantoparacontrollersouviews. Forneceronomedoarquivosemaextensão'.php' vendor('jpgraph/jpgraph_line'); vendor('alisson.h');

Bake Scriptparacriaçãoautomáticadearquivosentre configuração,models,controllers,viewseatéabase deumanovaaplicação Indicadoquandojásetenhaumafamiliaridadecomo CakePhp! encontra senodiretórioraiz/cake/scripts/bake.php InicialmenteexecutadonoTerminal

AplicaçãoSimples TrabalhandoeiniciandonoCakePhpcomosseus avisos. UtilizandooCakePhpBake!

DescompactandooCake...

Modulerewriteativado...

Configurandoaconexãoaobanco Salvarcomo databese.phpno mesmodiretorio RAIZ/app/config

Depoisdeconfigurado

Criado/app/view/linguas AplicaçãoDo CRUD <?php classlinguascontroller extendsappcontroller{ var$name='linguas'; var$scaffold; }?>

Depoisdecriadoocontrole.. Adicionado $validate <?php classlinguaextendsappmodel{ var$name='lingua'; var$validate=array( 'id'=>valid_not_empty, 'nomelingua'=>valid_not_empty, 'horario'=>valid_not_empty, ); }?>

Index(),Add(),Edit($id),Del($id),View($id) TelainicialeActionoufunçãopadrão

Index(),Add(),Edit($id),Del($id),View($id)

Index(),Add(),Edit($id),Del($id),View($id) 1ªlinhadeletadaapartirdesta action

Esabequantasviewseucriei? 0

CriandocomCakePhpBake Senão encontraro app,obake pedepara criar

CriandoomodelAluno Obake perguntará umporum

DeterminandoAssociações BelongsTo, HasOne, Percebam HasMany, HasAndBelongsToMany

Resultadoaluno.php <?php classalunoextendsappmodel{ var$name='aluno'; var$validate=array( 'lingua_id'=>valid_not_empty, 'nome'=>valid_not_empty, ); //TheAssociationsbelowhavebeencreatedwithallpossiblekeys,thosethatarenotneededcanberemoved var$belongsto=array( 'Lingua'=> array('classname'=>'lingua', 'foreignkey'=>'lingua_id', 'conditions'=>'', 'fields'=>'', 'order'=>'', 'countercache'=>'' ), ); }?>

CriandooControllernoBake

Resultadoaluno_controller.php <?php classalunoscontrollerextendsappcontroller{ var$name='alunos'; var$helpers=array('html','form'); functionindex(){ $this >Aluno >recursive=0; $this >set('alunos',$this >Aluno >findall()); } functionview($id=null){ if(!$id){ $this >Session >setflash('invalididforaluno.'); $this >redirect('/alunos/index'); } $this >set('aluno',$this >Aluno >read(null,$id)); }

Resultadoaluno_controller.php functionadd(){ if(empty($this >data)){ $this >set('linguas',$this >Aluno >Lingua >generatelist()); $this >render(); }else{ $this >cleanupfields(); if($this >Aluno >save($this >data)){ $this >Session >setflash('thealunohasbeensaved'); $this >redirect('/alunos/index'); }else{ $this >Session >setflash('pleasecorrecterrorsbelow.'); $this >set('linguas',$this >Aluno >Lingua >generatelist()); } } }

Resultadoaluno_controller.php functionedit($id=null){ } if(empty($this >data)){ if(!$id){ $this >Session >setflash('invalididforaluno'); $this >redirect('/alunos/index'); } $this >data=$this >Aluno >read(null,$id); $this >set('linguas',$this >Aluno >Lingua >generatelist()); }else{ $this >cleanupfields(); if($this >Aluno >save($this >data)){ $this >Session >setflash('thealunohasbeensaved'); $this >redirect('/alunos/index'); }else{ $this >Session >setflash('pleasecorrecterrorsbelow.'); $this >set('linguas',$this >Aluno >Lingua >generatelist()); } }

Resultadoaluno_controller.php functiondelete($id=null){ if(!$id){ $this >Session >setflash('invalididforaluno'); $this >redirect('/alunos/index'); } if($this >Aluno >del($id)){ $this >Session >setflash('thealunodeleted:id'.$id.''); $this >redirect('/alunos/index'); } } }?>

CriandoAsViewsComoBake Dessavezescreveu quatroarquivos

Dessaveztemosasviews

localhost/palestra/alunos/add Criadoautomaticamente porcausadotipoda associação Porquealguns estãoem negritoe 'Celular'não?

Perguntasoumaisperguntas?

Referências cakephp.org cakephp.com.br wikipedia tuliofaria.net vivaolinux.com.br