Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utilizando o framework CakePHP

  • View
    9.174

  • Download
    3

Embed Size (px)

DESCRIPTION

Palestra de Elton Luís sobre esse ótimo framework PHP

Text of Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utilizando o framework...

  • 1. Desenvolva rapidamente utilizando o framework CakePHP Elton Lus Minetto

2. AgendaAmbiente Web PHP Problemas Frameworks CakePHP Demonstrao 3. Ambiente Web o ambiente formado por algumas tecnologias: Servidor Web Protocolo HTTP e HTTPS Navegadores HTML, PHP, JSP, CSS, AJAX Web sites e sistemas 4. PHPLivre Fcil de usar Grande documentao Grande biblioteca de funes Orientao a Objeto 5. Problemas AmbienteWeb/PHP Repetio de tarefas Dificuldade de debug Vrias formas de fazer a mesma coisa Existem poucos padres e os que existem no so cumpridos (W3C x Microsoft) Os design patterns foram criados para aplicaes cliente-servidor, somente agora esto sendo portados para web Clientes querem alterar tudo muito rpido Desenvolvimento lento Pouco reaproveitamento de cdigo No existem ferramentas RAD como Delphi Dificuldade de fazer relatrios Navegadores no renderizam corretamente algumas coisas Novas tecnologias surgindo a todo minuto Mistura de layout e lgica 6. Problemas Ambiente Web/PHP 7. Frameworks uma base de onde pode-se desenvolver algo maior ou mais especfico. uma coleo de cdigos, classes, funes, tcnicas e metodologias que facilitam o desenvolvimento de novos softwares. Vantagens Todos programam parecido graas a padronizaes. Fcil manuteno Automatiza tarefas repetitivas. DRY Separao de layout e lgica. no more spaguetti! Reaproveitamento de cdigos 8. Padres Os frameworks so baseados em uma srie de padres de desenvolvimento j consolidadas:MVCMVC um acrnimo para Model, View, Controller (Modelo, Viso e Controlador). A idia separar todo o desenvolvimento de uma aplicao nestas trs partes, ou camadas: Model gerencia o comportamento dos dados da aplicao. View gerencia a sada grfica e textual da parte da aplicao visvel ao usurio Controller interpreta as entradas de mouse e teclado do usurio, comandando a Viso e o Modelo para se alterarem de forma apropriada. 9. Padres ActiveRecordEste padro de design facilita a manipulao de dados contidosemumabasedadospor aplicaes desenvolvidas com o paradigma orientados a objetos. Uma tabela de uma base de dados vista na forma de uma classe, enquanto que cada linha da tabela considerada um objeto desta classe. Quando um objeto criado, alterado ouexcludoesta ao automaticamente refletida na base de dados. Desta forma no necessrio que o desenvolvedor conhea uma linguagem de manipulao de dados como SQL, alm de manter toda a aplicao desenvolvida no paradigma orientado a objetos. 10. CakePHP Cake um framework para PHP que usa padres de desenvolvimento conhecidos como ActiveRecord e MVC. A idia principal ser um framework estruturado que permita a usurios PHP de todos os nveis desenvolver aplicaes web rubustas sem perda da flexibilidade. 11. CakePHP - Vantagens Licena flexvel (MIT) Compatibilidade com PHP4 e PHP5 Gerao de CRUD para interao com BD Arquitetura MVC Validaes Templates Ferramentas que auxiliam gerar Javascript, AJAX, forms HTML, etc Comunidade ativa Funciona em qualquer subdiretrio web, com pouca configurao do Apache. 12. Conceitos - Diretrios /ap p - a pl ica o/c on fi g a rqu ivo s de co nfi gu ra o , DB, e tc/c on tr oll er s co nt rol ad ore s da ap li ca o/i nd ex .ph p p gi na in ic ial d a a pl ic a o/m od el s m ode los d a a pl ica o/p lu gi ns/t mp us ad o p ara c ach e e l og s/v en do rs bib lio te cas d e t er cei ro s/v ie ws vi se s d a apl ic a o/el eme nt s e lem ent os , p ed ao s da vi s o/er ror s p g ina s d e err os cu st om iza da s/he lpe rs aj uda nte s par a ger ar c di go/la you ts ar qui vos d e l ay out/pa ges vi s es est t ica s/w eb ro ot Doc ume nt Roo t par a apl ic a o/cs s a rqu iv os css/fi les ar qu ivo s c om uns/im g i mag en s/js Ja vas cr ipt s /ca ke c dig o fon te do c ake 13. Requisitos Servidor web com as funcionalidades: sessions, mod_rewrite (no obrigatrio mas aconselhvel)PHP 4.3.2 ou superiorUma base de dados. Atualmente suportado MySQL, PostgreSQL, SQLite,ODBC e AdoDB. Futuramente Oracle (CakePHP 1.2) 14. Instalao Download do arquivo em http://cakephp.org/downloads Descompactar e copiar para o diretrio root do servidor Web. No Ubuntu:tar x fvj c ake _1 .1. 15. 51 44 .ta r. bz2 mv c ake _1 .1. 15 .51 44 /v ar /ww w/ cak eTestarno navegadorno endereo: http://localhost/cake 15. Configurao Apache necessrioduasconfiguraes: o mod_rewrite e o AllowOverride precisam estar ativos. Alterar o httpd.conf (apache2.conf no Ubuntu) e descomentar ou adicionar as linhas :Loa dM odu le re wr ite _mo du le mo du les /m od_ re wri te .so Add Mo dul e mod _r ewr ite .c Adicionar a linha abaixo no DocumentRoot e reiniciar o Apache:All ow Ove rr ide a ll 16. talk is cheap......show me the code! 17. DesenvolvendoA aplicaoFoi solicitado a criao de um site para agregar informaesdediversas imobilirias. Os clientes podem acessar e visualizar imveis a venda e se cadastrar como interessados. Deve haver uma interface de administrao para controle dasinformaes cadastradas 18. Desenvolvendo O Cake segue algumas regras de padronizao para a base de dados: Todas as tabelas devem estar no plural. A chave primria para todas as tabelas deve ser o campo id. Para utilizar chave estrangeira, deve possuir nome da tabela no singular acrescido do campo id. Ex: imovel_id. O relacionamento n-n, deve ser organizado em ordem alfabtica e os nomes devem estar no plural. Exemplo: livros_usuarios Modelos so no singular e controladores no plural 19. Modelagem 20. Usando o CakePHPIniciando a aplicao O cake possui uma excelente ferramenta para gerao da aplicao e de vrias partes de cdigo. A ferramenta chama-se bake. 21. Usando o CakePHPCriando um projeto: cd / var /w ww/ ca ke/ ph p cak e/ scr ip ts/ bak e. php - pr oje ct we bi mov ei sAps responder y para as perguntas, toda a estrutura de diretrios criada. Depois de criado o projeto necessrio criar a aplicao. 22. Usando o CakePHPCriando uma aplicao: ph p cak e/ scr ip ts/ bak e. php - ap p w eb imo ve is What da ta bas e driv er wo uld yo u li ke touse? (mys ql /my sq li/ mss ql /sq li te/ po st gre s/ odb c) qual data ba se. N est e c as o m ys ql Wha t is th e ho stn am e fo r th e data ba se ser ve r? - loc al ho st Wha t is th e dat aba se us er nam e? - im ob ili ar ias Wha t is th e dat aba se pa ss wor d? - im ob ili ar ias Wha t is th e nam e of the da ta bas e yo u wil l be usi ng ? - qu al a base de dado usa da . Ne ste exe mp loimo bil iar ia s. As ta bel as dev em ser pre vi am ent e cri ada s. 23. Usando o CakePHPEn te r a tabl e pre fi x? - caso as ta be las ten ha m al gum p ref ix o no s eu n ome . Nes te ca so n Lo ok ok ay ? (y/ n) co nf ir mar com y ca sotudo es tej a cor re toNestemomentoforam criadasas configuraes de conexo com a base de dados da aplicao. Estas configuraes foram salvas em /v ar /ww w/ cak e/ web imo ve is/ co nf ig/ da tab as e.p hpe podem ser alteradas posteriormente. 24. DICAPara gerar os modelos o bake ir trabalhar com os nomes das tabelas no singular. Como o CakePHP foi desenvolvido em ingls existem alguns problemas que ocorrem nessa transformao.Porexemplo, imobiliarias torna-se imobiliarium. Para resolver este problema necessrio alterar o arquivo we bi mov ei s/c on fig /in fl ect io ns .ph pe alterar a seguinte linha: $s in gul ar Rul es = arr ay ('/ ([ ti ])a $/ i' => ' 1a '); 25. Usando o CakePHPExecutando novamente o bake solicitado a opo degerar o Modelo, a Viso ou o Controle daaplicao. Gerando o Modelo: O bake conecta na base de dados e encontra as tabelas existentes. Voc pode escolher para qual das tabelas ir criar o modelo. Inicialmente vamos escolher a tabela Imobiliarias digitando seu nmero da lista mostrada. Wo ul d you like to su ppl y va li dat io n cr ite ri a for th e fiel ds in you r mod el? (y /n )- se des eja fo rne ce r cri tr ios de val ida o par a os cam po s da tab el a. Nes te caso y. apr es en tad o cad a um do s ca mp os e, de ac or do com se u ti po na tab el a apr es ent ad o alg uma s val id a es . Por exem pl o oca mpo idpod e ser va li da do para VA LID _N OT_ EM PT Y ou V AL ID_ NU MBE R. 26. Usando o CakePHPWo ul d youlik e todef in e mo de l as soc ia ti ons (h asM an y, ha sOn e, be lon gs To, etc. )? (y /n ) se ne ces s riodefi nir ass oci a es ent re os mo del os . E xi st em q ua tr o a ss oci a es :hasOne: possui um hasMany: possui muitos belongsTo: pertence a hasAndBelongsToMany: tem e pertence a muitos Escolhendo y o bake vai identificar as associaes esolicitar confirmao para cada uma delas: 27. Usando o CakePHP Im ob ili ar ia ha sOn e I mo ve l? (y /n) [y ] > n Im ob ili ar ia ha sOn e U su ar io? ( y/n ) [y ] > n Im ob ili ar ia ha sMa ny Im ov el? ( y/n ) [y ] > y Im ob ili ar ia ha sMa ny Us ua rio ? (y/ n) [y ] > y Ca ke tes t sui te not in sta ll ed.Do youwant to ba ke un it te st fil es a nyw ay ? ( y/ n) [y ] > n ge ra r a s c la ss es de te st e. Ne ste c aso N O ar qui vo mo de ls/ imo bi li ari a. php ge ra do 28. Usando o CakePHP Aps criar todos os modelos preciso criar os Controle. Executando novamente o comando: ph p cak e/ scr ip ts/ bak e. ph p - ap pwe bim ov eis Po ss ibl eCon tro lle rsba sedonyo ur cu rr ent da tab as e e sc olhe r o Imo bi lia ri as Wo ul d yo u li ke baketo bui ld yo ur con tr ol ler in ter ac ti vel y? - y Wo ul d you lik e to us e sc af fo ldi ng ? (y /n ) -se qu ere mo s cri ar as te la vi rt uai s de CR UD . N Wo ul d youlik e to in cl ude som e ba si c cl ass me tho ds(i nd ex( ),add () ,view () ,edi t( ))? (y /n) - se qu erem os cri ar as tel as de CRUD ex pli ci ta men te . Ne st e cas o Y 29. Usando o CakePHP Wo ul d you li ke to cre at e the met ho ds for ad mi n ro uti ng ?(y/ n) sequ er emo scr iar uma in ter fa ce di fe rent e pa ra a adi mi str a o . Y Wo ul d you li ke thi s con tro ll er to us e ot her mo del s besi de s 'Im ob ili ar ia '? (y/n ) se ne ces s ri o usar mai s de um mod el o. Ne st e cas o n Wo ul d yo