290 likes | 440 Views
Desenvolvimento Ágil para Web Utilizando PHP e o Framework Yii. Leonardo N. dos Santos – Semana de Informática 2011 – IFAM Parintins. Quem sou eu?. Estudante de Doutorado em Informática Universidade Federal do Amazonas Ambientes Virtuais na Web
E N D
Desenvolvimento Ágil para Web Utilizando PHP e o Framework Yii Leonardo N. dos Santos – Semana de Informática 2011 – IFAM Parintins
Quem sou eu? • Estudante de Doutorado em InformáticaUniversidade Federal do Amazonas • Ambientes Virtuais na Web • Sócio da Empresa Nhemu Serviços de Tecnologia da Informação • Colega de faculdade do Prof. David Brito • Trabalho desenvolvendo Ambientes Virtuais na Web • Desenvolvendo tecnologias para sites de comércio eletrônico.
Roteiro • Introdução • Aplicações Web • Exemplo: Um Blog Simples • Desenvolvendo do Zero • Usando o Framework Yii • Considerações Finais
Introdução • A Web está cada vez mais se povoando de aplicações • No início, pouco produziam e muitos liam • Agora, muitos produzem: • Conteúdo • Aplicações • Web 2.0 ou Web Social • Muitos Frameworks de Desenvolvimento • Framework: conjunto de códigos reusáveis para desenvolvimento de sistemas de software.
Aplicações Web • Cliente x Servidor • Browser Servidor de páginas HTTP • Internet Explorer • Mozilla Firefox • Google Chrome • Opera
Exemplo: Um Blog Simples • Blog = Web Log = Diário na Web • Lista de Posts organizados de forma cronológica, do mais recente para os mais antigos. • Escrito por uma ou mais pessoas. • Permite Comentários nos Posts
Funcionalidades do Blog • Donos do sistema: • Login e Logout • Criar, Alterar e Remover Posts • Publicar, Despublicar e Arquivar Posts • Aprovar e Remover Comentários • Os usuários: • Ler Posts • Criar Comentários
Blog: Requisitos • Autores do Blog • Login e Logout • Criar, Atualizar e deletar Posts • Publicar, despublicar e arquivar Posts • Aprovar e deletar Comentários • Outros usuários da Web • Ler Posts • Criar comentários
Blog: Requisitos • Homepage deve mostrar uma lista dos pots mais recentes • Se existir mais de 10 posts, eles devem ser exibidos em páginas • Os posts devem ser mostrados juntos com seus comentários • Mostrar os posts de uma Tag específica • Mostrar um nuvem de tags indicando sua frequência de uso • Mostrar uma lista dos comentários mais recentes • Aplicação de temas de apresentação
Navegação: Página Inicial (Homepage) • Header: Login • Lista de Posts ordenados pelos mais recentes • Paginação • Filtro por Tag • Cada Post tem um link para uma página de comentários, indicando o número de comentários • Links de Gerenciamento • Criar post • Gerenciar Posts • Aprovar comentários • Nuvem de Tags • Lista de Comentários mais recentes
Navegação: Outras Páginas • Página do Post e seus comentários • Novo Post • Gerenciar Posts • Lista de posts com ações de alteração • Aprovar Comentários • Lista de comentários pendentes de aprovação
Blog: Outras Coisas para se Preocupar • Conexão e aquisição de informações do BD • Login/Logout • Temas de Apresentação • Editor de texto dos Posts (WYSIWYG) • Validação de Formulários • Web 2.0: Ajax
Blog: Conclusão • É MUUUUIIITO TRABALHO!!! • Apesar de parecer simples, dá um certo trabalho. • Programadores experientes já possuem um “arsenal” de modelos de códigos. • Difícil manutenção de aplicações maiores. • Técnicas atuais: módulos, componentes, linhas de produção de software. • Ou use um Framework de Desenvolvimento!
Yii: Yes It is! • http://www.yiiframework.com/ • Framework: um conjunto de códigos, bibliotecas ou classes reusáveis para se desenvolver sistemas. • Muitas das coisas usuais no desenvolvimento de aplicações Web já estão codificadas, basta usar.
MVC: Model – View – Control • Padrão de arquitetura de software destinado a aplicações com alto nível de interatividade, cujo objetivo é melhorar a usabilidadeda aplicação, pois permite que a interface se ajuste (possivelmente em tempo de execução) independemente do seu núcleo de funcionalidades
MVC: Model – View – Control • Model: gerencia o comportamento e os dados do domínio da aplicação, responde a solicitações de informações sobre seu estado (geralmente pela view), e responde a instruções de mudança de estado. • View: gerencia a saída gráfica/textual para a porção da tela alocada para a aplicação. No caso de aplicações web, trata-se daquilo que é visto no browser do usuário. • Controller: interpreta as entradas de dados do usuário pelo mouse e teclado, comandando modificações ao model e/ou à view conforme o caso.
Yii e MVC • Model • baseado no esquema do banco de dados • Não depende de SGBD específico (Mysql, Oracle, Sqlite, ...) • Implementa relações de Chave Estrangeira • Acessado como Objeto • Controller • Realiza as ações de alteração de dados no model • Consulta o Model e chama as views: quais dados são mostrados. • Cada entidade possui um controller. • Views • Front-end: como os dados dão mostrados na página. • Uma view para cada página.
Porque MVC é flexível? • Cultura do Beta Perpétuo • Aplicações sempre se modificando • Interface sempre com novas novidades: desktop-like • Funcionalidades das aplicações são sempre incrementadas • Aplicações difíceis de usar não são usadas e são substituídas por outras mais fáceis.
Yii: funcionamento geral • É passado para o Yii o esquema do banco de dados. • É escolhido quais tabelas você quer que se gerem páginas • Lista • Consultar • Inserir • Alterar • Apagar
Yii: funcionamento geral • Configurar as chaves estrangeiras. • Configurar opções de Login. • Configurar a página inicial.
Yii: coisas prontas • Conexão e aquisição de informações do BD • Login/Logout • Temas de Apresentação • Editor de texto dos Posts (WYSIWYG) • Validação de Formulários • É preciso configurar os campos obrigatórios • Web 2.0: Ajax • Log do sistema
Instalar o Yii • Servidor AMP: Apache + MySQL + PHP • Windows: • Wamp • EasyPHP • XAMPP • Linux: • Ubuntu: Synaptic--> apache2, mysql-server, php5 • Yii Framework • http://www.yiiframework.com/download/
Blog no Yii: 30 minutos • How to create a blog system using Yii in less than 30 minutes • http://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 minutos
Na Prática! • http://localhost/yii/demos/blog/
Considerações Finais • Experiência pessoal • Já desenvolvi aplicações do zero. • Já dei manutenção em aplicações que outras pessoas desenvolveram. • Já desenvolvi aplicações partindo de CMS. • Achei o Yii uma “mão na roda”. • Não sei trabalhar direito com Ajax. • Não tenho paciência para fazer validação de formulário. • Não sei fazer um design bom. • Não sei organizar meu código direito. • Perdia muito tempo com detalhes de sistema em vez de desenvolver as funcionalidades da minha aplicação. • Muitas vezes, esses detalhes tinham bug.