21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS Leonardo Pimentel Ferreira Higor Ernandes Ramos Silva Aula 1 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 2 Objetivos do Curso • Introduzir conceitos de programação para web • Introduzir o PHP • Utilizar o paradigma Orientado a Objeto com MVC em PHP • Utilizar banco de dados no PHP • Introduzir conceitos de segurança em PHP • Introduzir o framework front-end Bootstrap Twitter Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Agenda • 21/11 • Introduzir conceitos de programação para web • Introduzir o PHP, MVC e O. O. em PHP • 26/11 • Utilizar o paradigma Orientado a Objeto em PHP • 28/11 • Utilizar o paradigma Orientado a Objeto em PHP • 03/12 • Conectando PHP ao Banco de dados através do PDO • 05/12 • Introduzir conceitos de segurança em PHP • 10/12 • Introduzir o framework front-end Bootstrap Twitter Aula 1 3 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Vamos começar! • Arquitetura Cliente-Servidor • Protocolo Web HTTP e HTTPS • Introdução HTML • Linguagens Lado Cliente e Lado Servidor • Considerações Aula 1 4 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Arquitetura Cliente-Servidor Servidor Clientes Aula 1 5 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 6 Protocolo Web HTTP e HTTPS • HTTP ( Hypertext Transfer Protocol ) • HTTPS ( Hypertext Transfer Protocol Secure ) • A WEB roda sobre o protocolo HTTP • HTTP governa como web browsers requisitam arquivos de servidores web e como servidores enviam arquivos de volta Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Inspecionando os cabeçalhos gerados quando uma requisição HTTP é feita Aula 1 7 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Dois principais comandos HTTP • GET: é usado para buscar dados de um recurso especificado Aula 1 8 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 9 Dois principais comandos HTTP • POST: é usado para submeter dados a serem processados para um recurso especificado Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 10 Mais sobre o protocolo HTTP e HTTPS • HTTP é um protocolo da camada de aplicação do modelo OSI • Utilizam o protocolo TCP/IP (que garante entre outras coisas, que os dados recebidos estejam corretos) • A diferença entre HTTP e HTTPS está na segurança: o HTTPS utiliza dados criptografados pela rede Aula 1 Fonte: Wikipedi 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 11 HTML (versão atual: 5) • HTML (Hypertext Markup Language) é uma linguagem de marcação utilizada para criar páginas Web • Seu objetivo é mostrar como conteúdo da página deva estar organizado • O HTTP é o responsável por transferir o conteúdo HTML • O Cliente (Browser) é o responsável por interpretar o código HTML transferido pelo protocolo HTTP que é uma resposta do servidor Web • Qualquer que seja a linguagem: PHP, Java, ASP para fazer um website, um arquivo HTML é gerado ao final do processamento. Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia HTML (versão atual: 5) Aula 1 12 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 13 Linguagens Lado Cliente • Linguagens Lado Cliente: São linguagens que executam no navegador do Cliente • Pode-se fazer várias coisas com elas como: • Validar dados • Produzir efeitos interativos • Modificar elementos HTML • Tratar eventos • Reduzir o processamento no Lado Servidor • etc. • Ex.: Javascript, ActionScript (Flash) Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 14 Linguagens Lado Servidor • Linguagens Lado Servidor: São linguagens que executam no servidor Web ou servidor HTTP • Com elas é possível: • Gerar conteúdo dinâmico para a aplicação • Armazenar dados em banco de dados • Processar dados da requisição • etc. • Ex.: PHP, Java, Java, Ruby on Rails, ASP, etc. Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Algumas considerações • Exemplos de Servidores Web: Apache, Internet Information Services, Lighttpd, nginx • Padrão W3C • Determina regras (padrão Web) • Frameworks • São utilizados muitas vezes para facilitar e agilizar o desenvolvimento de aplicações • IDE (Integrated Development Environment) • Fornecem ferramentas que facilitam o desenvolvimento de software Aula 1 15 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 16 • Após esta ligeira introdução... Vamos utilizar: • PHP como uma Linguagem Lado Servidor (Versão atual 5.5.6 em 21/11/2013) • Apache como sendo o servidor HTTP/HTTPS Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia Funcionalidades do PHP • Interoperabilidade e liberdade de escolha: • Pode ser usado na maioria dos sistemas operacionais • Suportado pela maioria dos servidores web • Suporte: • Em constante atualização • Boa documentação • Vários frameworks: Cake PHP, Zend, Yii, CodeIgniter. • Mais frameworks em http://www.phpframeworks.com/ • Doctrine ORM Aula 1 17 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 18 Funcionalidades do PHP • Do ponto de vista de programação: (fácil de aprender) • Aceita programação procedimental, orientação a objetos ou uma mistura de ambos. • Relaciona bem com HTML, XML, XHTML e também trabalha com saída de imagens, PDF, filmes em Flash, gera conteúdo dinâmico. • Suporta muitos banco de dados, inclusive NoSQL, PDO • Serviços com protocolos LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows). Sockets, WDDX, instancia objetos Java transparentemente com objetos PHP. • Manipula texto muito bem. Suporta expressões regulares. • Suporta vários algorítmos de criptografia • Mais detalhes: • http://us3.php.net/manual/en/funcref.php • http://us3.php.net/manual/en/index.php Aula 1 21/11/2013 PET Sistemas de Informação | Faculdade de Computação | Universidade Federal de Uberlândia 19 Referências • Site W3C Schools: http://www.w3schools.com/ • Site W3C: http://www.w3.org/ • Site do PHP: http://php.net/ • Livro: Programming PHP 3rd Edition. Kevin Tatroe, Peter MacIntyre e Rasmus Lerdorf • Livro: Object-Oriented PHP, concepts, techniques, and code, Peter Lavin Aula 1