Estudo Comparativo De Frameworks Php, Com Enfoque No Codeigniter
Total Page:16
File Type:pdf, Size:1020Kb
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL-RIO- GRANDENSE - CÂMPUS PASSO FUNDO CURSO DE TECNOLOGIA EM SISTEMAS PARA INTERNET FLÁVIO HENKES BAGESTAN ESTUDO COMPARATIVO DE FRAMEWORKS PHP, COM ENFOQUE NO CODEIGNITER Prof. Me. Adilso Nunes de Souza PASSO FUNDO 2016 FLÁVIO HENKES BAGESTAN ESTUDO COMPARATIVO DE FRAMEWORKS PHP, COM ENFOQUE NO CODEIGNITER Monografia apresentada ao Curso de Tecnologia em Sistemas para Internet do Instituto Federal Sul-rio-grandense, Campus Passo Fundo, como requisito parcial para a obtenção do título de Tecnólogo em Sistemas para Internet. Orientador: Prof. Me. Adilso Nunes de Souza PASSO FUNDO 2016 FLÁVIO HENKES BAGESTAN ESTUDO COMPARATIVO DE FRAMEWORKS PHP, COM ENFOQUE NO CODEIGNITER Trabalho de Conclusão de Curso aprovado em ____/____/____ como requisito parcial para a obtenção do título de Tecnólogo em Sistemas para Internet Banca Examinadora: _______________________________________ Prof. Me. Adilso Nunes de Souza Orientador _______________________________________ Prof. Me. Jair José Ferronato Avaliador _______________________________________ Prof. Me. Maikon Cismoski dos Santos Avaliador ________________________________________ Prof. Me. Adilso Nunes de Souza Coordenação do Curso PASSO FUNDO 2016 À minha família, pelo apoio e incentivo em todos os momentos. AGRADECIMENTOS Agradeço a minha família por todo o apoio e incentivo, o que contribuiu para a conquista de mais um objetivo. Agradeço também ao meu orientador, Professor Me. Adilso Nunes de Souza, por me acompanhar nessa jornada, compartilhando conhecimentos, que foram fundamentais para a realização deste trabalho. Por fim, agradeço a todos os professores do Instituto Federal Sul-rio- grandense Campus Passo Fundo, pela dedicação e os ensinamentos no decorrer do curso. E a todas as pessoas que, de alguma forma, contribuíram para a conclusão dessa etapa. “Quanto mais aumenta nosso conhecimento, mais evidente fica nossa ignorância” John F. Kennedy RESUMO O estudo realizado apresenta um comparativo sobre os principais frameworks PHP, e a aplicação do CodeIgniter em um sistema para geração e manutenção de orçamentos. A principal motivação para realização desse estudo é proporcionar um comparativo entre os cinco principais frameworks PHP - CakePHP, CodeIgniter, Symfony, Yii e Zend -, demonstrando as características de cada um, proporcionando o conhecimento e a aplicação prática, no desenvolvimento de um sistema que faz uso das funcionalidades do framework CodeIgniter, e que realiza a tarefa de geração e manutenção de orçamentos. Durante o estudo foi possível observar características comuns entre os frameworks, assim como diferenças entre eles, que permitiram ampliar as possibilidades no desenvolvimento de aplicações web. Palavras-chave: CodeIgniter, Comparativos, Framework php, PHP. ABSTRACT The study presents a comparative of the main PHP frameworks, and the application of CodeIgniter in a system for generation and maintenance of budgets. The main motivation for the realization of this study is to provide a comparative between the five main PHP frameworks - CakePHP, CodeIgniter, Symfony, Yii e Zend -, demonstrating the characteristics of each one, providing the knowledge and the practical application, in the development of a system that makes use of the functionalities of CodeIgniter framework, and performs the task of generation and maintenance of budgets. During the study, common features between the frameworks were observed, as well as differences between them, that allowed expand the possibilities in the web applications development. Keywords: CodeIgniter, Comparatives, PHP framework, PHP. LISTA DE FIGURAS Figura 1 - Crescimento da linguagem PHP ............................................................... 16 Figura 2 - Padrão MVC ............................................................................................. 17 Figura 3 - Exemplo de implementação da classe modelo ......................................... 18 Figura 4 - Exemplo de visão ...................................................................................... 18 Figura 5 - Exemplo de implementação da classe controlador ................................... 19 Figura 6 - Exemplo de Diagrama de Casos de Uso .................................................. 21 Figura 7 - Exemplo de Diagrama de Classes ............................................................ 22 Figura 8 - Fluxo da aplicação .................................................................................... 24 Figura 9 - Fluxo de execução típico de uma aplicação Yii ........................................ 26 Figura 10 - Ciclo de requisição do CakePHP ............................................................ 28 Figura 11 - Fluxo de uma aplicação Symfony ........................................................... 29 Figura 12 - Etapas do desenvolvimento do trabalho ................................................. 30 Figura 13 - Gráficos de análise com base nas métricas de software ........................ 36 Figura 14 - Diagrama de casos de uso do sistema ................................................... 39 Figura 15 - Diagrama de classes do sistema ............................................................ 40 Figura 16 - Tela inicial de login .................................................................................. 41 Figura 17 – Página inicial da interface do painel administrativo ................................ 41 Figura 18 - Menu superior direito .............................................................................. 42 Figura 19 – Formulário e botões Adicionar e Limpar ................................................. 42 Figura 20 - Formulário e botão para alterar registro .................................................. 43 Figura 21 - Listagem de dados e botões alterar e excluir .......................................... 43 Figura 22 – Exemplo de paginação ........................................................................... 44 Figura 23 - Validação de campos editáveis ............................................................... 44 Figura 24 - Validação do campo data ........................................................................ 45 Figura 25 - Mensagem de erro no login .................................................................... 45 Figura 26 - Mensagem de violação de integridade .................................................... 46 Figura 27 - Página de orçamentos ............................................................................ 46 Figura 28 - Formulário para adição de orçamento .................................................... 47 Figura 29 - Opções de inclusão e impressão do orçamento ..................................... 47 Figura 30 - Página de adição de produtos ao orçamento .......................................... 48 Figura 31 - Página de adição de serviços ao orçamento .......................................... 48 Figura 32 - Orçamento gerado em formato PDF ....................................................... 49 LISTA DE TABELAS Tabela 1 - Características dos frameworks ............................................................... 34 LISTA DE ABREVIATURAS E SIGLAS API – Application Programming Interface ASP - Active Server Pages BCIT - British Columbia Institute of Technology CPU - Central Processing Unit CRUD – Create, Read, Update, Delete HTTP - Hypertext Transfer Protocol HTML - Hypertext Markup Language JSP - Java Server Pages MVC – Model, View, Controller OOSE - Object-Oriented Software Engineering OMT - Object Modeling Technique PHP - Hypertext Preprocessor SEI – Software Engineering Institute SGBD - Sistema de Gerenciamento de Banco de Dados SOLID - Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion SQL - Structured Query Language UML - Unified Modeling Language WAF - Web Application Frameworks XHTML - Extensible Hypertext Markup Language SUMÁRIO 1 INTRODUÇÃO .................................................................................................. 13 1.1 OBJETIVOS ..................................................................................................... 13 1.1.1 Objetivos gerais ............................................................................................ 14 1.1.2 Objetivos específicos ................................................................................... 14 1.2 ESTRUTURA DO TRABALHO ........................................................................ 14 2 REFERENCIAL TEÓRICO ............................................................................... 15 2.1 PHP .................................................................................................................. 15 2.2 MYSQL ............................................................................................................. 16 2.3 MVC .................................................................................................................. 17 2.4 UML .................................................................................................................. 19 2.4.1 Diagrama de casos de uso .......................................................................... 20 2.4.2 Diagrama de classes .................................................................................... 21 2.5 FRAMEWORKS ............................................................................................... 22 2.5.1 CodeIgniter ...................................................................................................