desenvolvimento c3a1gil para web utilizando yii

29
Desenvolvimento Ágil para Web Utilizando PHP e o Framework Yii Leonardo N. dos Santos – Semana de Informática 2011 – IFAM Parintins

Upload: renato-mendes

Post on 06-Nov-2015

230 views

Category:

Documents


2 download

DESCRIPTION

Desenvolvimento co Yii

TRANSCRIPT

Desenvolvimento gil para Web Utilizando PHP e o Framework Yii

Desenvolvimento gil para Web Utilizando PHP e o Framework YiiLeonardo N. dos Santos Semana de Informtica 2011 IFAM ParintinsQuem sou eu?Estudante de Doutorado em InformticaUniversidade Federal do AmazonasAmbientes Virtuais na WebScio da Empresa Nhemu Servios de Tecnologia da InformaoColega de faculdade do Prof. David Brito

Trabalho desenvolvendo Ambientes Virtuais na WebDesenvolvendo tecnologias para sites de comrcio eletrnico.2RoteiroIntroduoAplicaes WebExemplo: Um Blog SimplesDesenvolvendo do ZeroUsando o Framework YiiConsideraes Finais3IntroduoA Web est cada vez mais se povoando de aplicaesNo incio, pouco produziam e muitos liamAgora, muitos produzem:ContedoAplicaesWeb 2.0 ou Web SocialMuitos Frameworks de DesenvolvimentoFramework: conjunto de cdigos reusveis para desenvolvimento de sistemas de software.4Aplicaes WebClientexServidorBrowserServidor de pginas HTTPInternet ExplorerMozilla FirefoxGoogle ChromeOpera5Aplicaes Web6Exemplo: Um Blog SimplesBlog = Web Log = Dirio na WebLista de Posts organizados de forma cronolgica, do mais recente para os mais antigos.Escrito por uma ou mais pessoas.Permite Comentrios nos Posts7Funcionalidades do BlogDonos do sistema:Login e LogoutCriar, Alterar e Remover PostsPublicar, Despublicar e Arquivar PostsAprovar e Remover ComentriosOs usurios:Ler PostsCriar Comentrios8Blog: RequisitosAutores do BlogLogin e LogoutCriar, Atualizar e deletar PostsPublicar, despublicar e arquivar PostsAprovar e deletar ComentriosOutros usurios da WebLer PostsCriar comentrios9Blog: RequisitosHomepage deve mostrar uma lista dos pots mais recentesSe existir mais de 10 posts, eles devem ser exibidos em pginasOs posts devem ser mostrados juntos com seus comentriosMostrar os posts de uma Tag especficaMostrar um nuvem de tags indicando sua frequncia de usoMostrar uma lista dos comentrios mais recentesAplicao de temas de apresentao10BD

11Navegao: Pgina Inicial (Homepage)12Header: Login

Lista de Posts ordenados pelos mais recentesPaginaoFiltro por TagCada Post tem um link para uma pgina de comentrios, indicando o nmero de comentrios

Links de GerenciamentoCriar postGerenciar PostsAprovar comentriosNuvem de TagsLista de Comentrios mais recentesNavegao: Outras Pginas13Pgina do Post e seus comentriosNovo PostGerenciar PostsLista de posts com aes de alteraoAprovar ComentriosLista de comentrios pendentes de aprovaoBlog: Outras Coisas para se Preocupar14Conexo e aquisio de informaes do BDLogin/LogoutTemas de ApresentaoEditor de texto dos Posts (WYSIWYG)Validao de FormulriosWeb 2.0: AjaxBlog: Concluso15 MUUUUIIITO TRABALHO!!!Apesar de parecer simples, d um certo trabalho.

Programadores experientes j possuem um arsenal de modelos de cdigos.Difcil manuteno de aplicaes maiores.Tcnicas atuais: mdulos, componentes, linhas de produo de software.

Ou use um Framework de Desenvolvimento!Yii: Yes It is!16http://www.yiiframework.com/

Framework: um conjunto de cdigos, bibliotecas ou classes reusveis para se desenvolver sistemas.Muitas das coisas usuais no desenvolvimento de aplicaes Web j esto codificadas, basta usar.

MVC: Model View Control17Padro de arquitetura de software destinado a aplicaes com alto nvel de interatividade, cujo objetivo melhorar a usabilidade da aplicao, pois permite que a interface se ajuste (possivelmente em tempo de execuo) independemente do seu ncleo de funcionalidadesMVC: Model View Control18

MVC: Model View Control19Model: gerencia o comportamento e os dados do domnio da aplicao, responde a solicitaes de informaes sobre seu estado (geralmente pela view), e responde a instrues de mudana de estado.View: gerencia a sada grfica/textual para a poro da tela alocada para a aplicao. No caso de aplicaes web, trata-se daquilo que visto no browser do usurio.Controller: interpreta as entradas de dados do usurio pelo mouse e teclado, comandando modificaes ao model e/ou view conforme o caso.

Yii e MVC20Modelbaseado no esquema do banco de dadosNo depende de SGBD especfico (Mysql, Oracle, Sqlite, ...)Implementa relaes de Chave EstrangeiraAcessado como ObjetoControllerRealiza as aes de alterao de dados no modelConsulta o Model e chama as views: quais dados so mostrados.Cada entidade possui um controller.ViewsFront-end: como os dados do mostrados na pgina.Uma view para cada pgina.

Porque MVC flexvel?21Cultura do Beta PerptuoAplicaes sempre se modificandoInterface sempre com novas novidades: desktop-likeFuncionalidades das aplicaes so sempre incrementadasAplicaes difceis de usar no so usadas e so substitudas por outras mais fceis.Yii: funcionamento geral22 passado para o Yii o esquema do banco de dados. escolhido quais tabelas voc quer que se gerem pginasListaConsultarInserirAlterarApagar

BD

23Yii: funcionamento geral24Configurar as chaves estrangeiras.Configurar opes de Login.Configurar a pgina inicial.Yii: coisas prontas25Conexo e aquisio de informaes do BDLogin/LogoutTemas de ApresentaoEditor de texto dos Posts (WYSIWYG)Validao de Formulrios preciso configurar os campos obrigatriosWeb 2.0: Ajax

Log do sistemaInstalar o YiiServidor AMP: Apache + MySQL + PHPWindows:WampEasyPHPXAMPPLinux:Ubuntu: Synaptic--> apache2, mysql-server, php5Yii Frameworkhttp://www.yiiframework.com/download/2626Blog no Yii: 30 minutos27How to create a blog system using Yii in less than 30 minuteshttp://www.yiiframework.com/news/14/screencast-how-to-create-a-blog-system-using-yii-in-less-than-30-minutes/

Como criar um sistema de blog usando Yii em menos de 30 minutosNa Prtica!28http://localhost/yii/demos/blog/

Consideraes Finais29Experincia pessoalJ desenvolvi aplicaes do zero.J dei manuteno em aplicaes que outras pessoas desenvolveram.J desenvolvi aplicaes partindo de CMS.Achei o Yii uma mo na roda.No sei trabalhar direito com Ajax.No tenho pacincia para fazer validao de formulrio.No sei fazer um design bom.No sei organizar meu cdigo direito.Perdia muito tempo com detalhes de sistema em vez de desenvolver as funcionalidades da minha aplicao.Muitas vezes, esses detalhes tinham bug.

VIEWCONTROLLERMODELvmodificaatualizagera inputconsulta