Apresentação faef

891 visualizações

Publicada em

Mini curso de PHP ministrado no XIV SIMPÓSIO DE CIÊNCIAS APLICADAS DA FAEF

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
891
No SlideShare
0
A partir de incorporações
0
Número de incorporações
78
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentação faef

  1. 1. Prof. Lucas Simões Maistro [email_address] http://www.twitter.com/lucas_simoes http://blogdopiruca.wordpress.com/
  2. 2. Apresentação <ul><li>Prof. Lucas Simões Maistro </li></ul><ul><ul><li>Especialista em Sistemas para Internet </li></ul></ul><ul><ul><li>Bacharel em Administração de Empresas com Habilitação em Análise de Sistemas </li></ul></ul><ul><ul><li>Engenheiro de Software da Critical Software do Brasil </li></ul></ul><ul><ul><li>11 anos de experiência em desenvolvimento de software </li></ul></ul>
  3. 3. Tendências do Mercado <ul><li>Sistemas Web </li></ul><ul><li>Mobilidade </li></ul><ul><li>Saas </li></ul><ul><li>Computação em Nuvem (Cloud Computing) </li></ul>
  4. 4. O que é PHP? <ul><li>O PHP é, assim como Java e .NET, uma linguagem de programação e uma plataforma global. </li></ul><ul><li>Como linguagem de programação, PHP tem uma sintaxe bastante parecida com C, Shell, Perl e Java. </li></ul><ul><li>Com PHP é possível desenvolver: </li></ul><ul><ul><li>Aplicações Web dinâmicas (websites, intranets, extranets, etc); </li></ul></ul><ul><ul><li>Aplicações desktop (PHP-GTK e PHP4Delphi); </li></ul></ul><ul><ul><li>Rich Clients (PHP-XUL); </li></ul></ul><ul><ul><li>Web Services (SOAP, XML-RPC, REST); </li></ul></ul><ul><ul><li>Scripts de linha de comando; </li></ul></ul><ul><ul><li>Tarefas de segundo plano. </li></ul></ul>
  5. 5. O que é PHP? <ul><li>Cerca de 1000 engenheiros desenvolvem o PHP. </li></ul><ul><li>O PHP é Software Livre, distribuído sob uma licença na qual os usuários não são obrigados a publicar seu código. </li></ul><ul><li>A portabilidade é uma das maiores vantagens do PHP, possibilitando sua instalação em vários Sistemas Operacionais como: Windows, Linux, Unix, IBM iSeries, SGI IRIX, RISC OS, Netware Novell, Mac OS X e AmigaOS </li></ul><ul><li>Utilizado com: </li></ul><ul><ul><li>Um servidor Web: Apache ou Microsoft IIS; </li></ul></ul><ul><ul><li>Um SGDB (banco de dados): MySQL, PostgreSQL, Oracle, SQL Server, etc. </li></ul></ul><ul><ul><li>A maioria das plataformas utilizam Linux, Apache e MySQL. </li></ul></ul>
  6. 6. Por que usar PHP?
  7. 7. Simplicidade <ul><li>O PHP é uma linguagem com um modelo de desenvolvimento muito simples. </li></ul><ul><li>O objetivo inicial do PHP era tornar possível um desenvolvimento rápido sem um treinamento preliminar. </li></ul><ul><li>Esse objetivo foi alcançado, fazendo com que a maioria das empresas de hospedagem ofereçam PHP nos seus servidores. </li></ul>
  8. 8. Adaptabilidade <ul><li>O PHP usa duas sintaxes: procedura e orientada a objetos. </li></ul><ul><li>Procedural: </li></ul><ul><ul><li>utilizada por webmasters que trabalham na interface com o usuário. </li></ul></ul><ul><li>Orientada a Objetos: </li></ul><ul><ul><li>propositalmente similar ao Java e C#, com o objetivo de reduzir os custos com treinamento e encorajar a migração para o PHP. </li></ul></ul>
  9. 9. Interoperabilidade <ul><li>Diversas ferramentas suportam a linguagem PHP, por exemplo, Visual Studio (utilizando o framework .Net) e Delphi; </li></ul><ul><li>Acesso a qualquer banco de dados relacional; </li></ul><ul><li>XML </li></ul><ul><li>Web Services </li></ul>
  10. 10. Dephi for PHP e RadPHP XE
  11. 11. Visual Studio 2010
  12. 12. Portabilidade <ul><li>Disponível para a maioria dos sistemas operacionais, o PHP funciona da mesma maneira que a Maquina Virtual do Java (JVM). </li></ul><ul><li>Após desenvolver a aplicação, ela irá funcionar imediatamente, sem a necessidade de recompilar, independente de qual sistema operacional está sendo utilizado. </li></ul>
  13. 13. Uma das linguagens mais utilizadas Fonte: http://www.tiobe.com
  14. 14. Alta Demanda por Profissionais
  15. 15. Esquema de Funcionamento
  16. 16. Primeiro Script
  17. 17. Detalhamento do Script <ul><li>No exemplo, é criada uma variável chamada $texto e atribuído o valor “Primeiro Script”, que posteriormente será exibido pelo browser. </li></ul><ul><ul><li>Toda variável em PHP é iniciada por $. </li></ul></ul><ul><ul><li>Não há necessidade de declarar o tipo de variável. </li></ul></ul><ul><ul><li>Quando a página é carregada, o script PHP é interpretado pelo Apache e substituído pelo resultado gerado puramente em Html. </li></ul></ul><ul><ul><li>Isso pode ser verificado a partir do browser no menu: </li></ul></ul><ul><ul><ul><li>Exibir / Código fonte </li></ul></ul></ul>
  18. 18. Utilizando Formulários em HTML
  19. 19. Detalhamento do Script <ul><li>empty retorna se a variável passada no parâmetro vale null ou “”. </li></ul><ul><ul><li>null indica variável não declarada e “” indica que variável tem valor vazio. </li></ul></ul><ul><li>$_REQUEST retorna o valor contido num campo do formulário. </li></ul><ul><ul><li>É necessário que a propriedade NAME do INPUT do formulário HMTL tenha o mesmo nome do parâmetro usado em $_REQUEST. </li></ul></ul><ul><li>$_REQUEST requisita valores enviados pelos métodos GET e POST. </li></ul><ul><ul><li>Para especificar apenas um dos métodos, utilize $_GET e $_POST. </li></ul></ul><ul><li>A instrução if é usada para garantir que nada seja apresentado quando a página for carregada pela primeira vez. </li></ul><ul><li>É possível atribuir o valor do INPUT direto para uma variável do PHP. </li></ul><ul><ul><li>É preciso configurar register_globals = On no arquivo PHP.INI e reiniciar o servidor Apache. </li></ul></ul>
  20. 20. If..else // while // for <ul><li>if..else </li></ul><ul><li>while </li></ul><ul><li>for </li></ul>
  21. 21. Inclusão de outros Scripts
  22. 22. Uso de Vetor (array)
  23. 23. Sessão
  24. 24. Curiosidade - ZIP <ul><li>No site do PHPClasses é possível encontrar classes com funcionalidades incríveis </li></ul>
  25. 25. Curiosidade - ZIP <ul><li>Index.php </li></ul><ul><li>compactar.php </li></ul>
  26. 26. Curiosidade - Thumbnails <ul><li>Thumbnails são as versões reduzidas das imagens </li></ul><ul><li>No próprio google é possível encontrar diversas classes e rotinas em PHP que criam esse efeito </li></ul>
  27. 27. Conectando BD <ul><li>Em programação web deve-se pensar em: </li></ul><ul><ul><li>Conectar ao banco de dados o mais tardar possível </li></ul></ul><ul><ul><li>Desconectar o quanto antes. </li></ul></ul>
  28. 28. Programação Orientada a Objetos no PHP <ul><li>Projetos profissionais exigem alto nível de reusabilidade </li></ul><ul><li>A melhor maneira de alcançar esse objetivo é trabalhar orientado à objetos </li></ul><ul><li>O PHP não poderia ficar fora dessa </li></ul>
  29. 29. Conceitos da Orientação a Objetos <ul><li>A orientação a objetos (OO), também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. </li></ul>
  30. 30. Conceitos da Orientação a Objetos <ul><li>Classe </li></ul><ul><li>Objeto </li></ul><ul><li>Atributos </li></ul><ul><li>Métodos </li></ul><ul><li>Sobrecarga </li></ul><ul><li>Herança </li></ul><ul><li>Associação </li></ul><ul><li>Encapsulamento </li></ul><ul><li>Abstração </li></ul><ul><li>Polimorfismo </li></ul>
  31. 31. Classe <ul><li>Uma classe define o objeto com comportamento, através de métodos, e quais estados ele é capaz de manter, através de atributos. </li></ul><ul><li>Exemplo de classe: Os seres humanos. </li></ul>
  32. 32. Objeto <ul><li>Objeto é uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. </li></ul><ul><li>Exemplo de objetos da classe Humanos: João, José, Maria. </li></ul>
  33. 33. Atributos <ul><li>São dados ou informações do objeto, basicamente a estrutura de dados que vai representar a classe. Exemplos: </li></ul><ul><li>Funcionário: nome, endereço, telefone, CPF; </li></ul><ul><li>Carro: nome, marca, ano, cor; </li></ul><ul><li>Livro: autor, editora, ano. </li></ul>
  34. 34. Métodos <ul><li>Definem as habilidades dos objetos. </li></ul><ul><li>Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método deUmLatido(). </li></ul><ul><li>Um método em uma classe é apenas uma definição. </li></ul><ul><li>A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. </li></ul>
  35. 35. Sobrecarga <ul><li>É a utilização do mesmo nome para símbolos ou métodos com operações ou funcionalidades distintas. Geralmente diferencia-se os métodos pela sua assinatura. </li></ul>
  36. 36. Herança <ul><li>É o mecanismo pelo qual uma classe (classe-filha) pode estender outra classe (classe-mãe), aproveitando seus comportamentos (métodos) e estados possíveis (atributos). </li></ul><ul><li>Mamífero é classe-mãe de Humano (classe-filha). </li></ul>
  37. 37. Encapsulamento <ul><li>Consiste na separação de aspectos internos e externos de um objeto. </li></ul><ul><li>Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável </li></ul>
  38. 38. Abstração <ul><li>É a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software. </li></ul>
  39. 39. Polimorfismo <ul><li>É o princípio pelo qual duas ou mais classes derivadas de uma mesma classe-mãe podem invocar métodos que têm a mesma assinatura. </li></ul><ul><li>A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução. </li></ul>
  40. 40. Linguagens com suporte a OO <ul><li>Smalltalk </li></ul><ul><li>Perl </li></ul><ul><li>Python </li></ul><ul><li>Ruby on Rails </li></ul><ul><li>ColdFusion </li></ul><ul><li>C++ </li></ul><ul><li>Object Pascal (Delphi) </li></ul><ul><li>Java </li></ul><ul><li>C# </li></ul><ul><li>VB.NET </li></ul>
  41. 41. Exemplo
  42. 42. Exemplo – Classe Aluno
  43. 43. Exemplo – Classe Aluno – Métodos de Acesso a Dados
  44. 44. Exemplo PHP OO
  45. 45. Padrão MVC (Model-View-Controller) <ul><li>Model </li></ul><ul><ul><li>Camada de Controle - determina o fluxo da apresentação servindo como uma camada intermediária entre a camada de apresentação e a lógica. </li></ul></ul><ul><ul><ul><li>Controla e mapeia as ações. </li></ul></ul></ul><ul><li>View </li></ul><ul><ul><li>Camada de apresentação ou visualização - Não esta preocupada em como a informação foi obtida ou onde ela foi obtida apenas exibe a informação. </li></ul></ul><ul><ul><ul><li>Inclui os elementos de exibição no cliente: HTML, XML, ASP, Applets. </li></ul></ul></ul><ul><ul><ul><li>É a camada de interface com o usuário. </li></ul></ul></ul><ul><ul><ul><li>É usada para receber a entrada de dados e apresentar o resultado. </li></ul></ul></ul><ul><li>Controller </li></ul><ul><ul><li>Camada de lógica da Aplicação - É o coração da aplicação. Responsável por tudo que a aplicação vai fazer. </li></ul></ul><ul><ul><ul><li>Modela os dados e o comportamento por atrás do processo de negócios. </li></ul></ul></ul><ul><ul><ul><li>Preocupa-se apenas com o armazenamento, manipulação e geração de dados. </li></ul></ul></ul><ul><ul><ul><li>É um encapsulamento de dados e de comportamento independente da apresentação. </li></ul></ul></ul>
  46. 46. Exemplo MVC
  47. 47. PHP e extJS <ul><li>Biblioteca JavaScript </li></ul><ul><li>Foi criado para ser uma extensão do Yahoo! User Interface (YUI) </li></ul><ul><li>Por ser JavaScript pode ser interpretada por qualquer navegador </li></ul>
  48. 48. PHP e extJS
  49. 49. PHP e jQuery <ul><li>Tudo começou com esse post: </li></ul><ul><li>Onde o autor descrevia sua insatisfação com a grande quantidade de código que se tinha que escrever para obter resultados simples através da linguagem JavaScript e apresentava ao mundo um modelo simplificado de se desenvolver web sites com interfaces ricas. </li></ul>
  50. 50. PHP e jQuery
  51. 51. PHP e jQuery
  52. 52. Considerações Finais <ul><li>PHP é uma linguagem robusta e dinâmica </li></ul><ul><li>Altamente profissional </li></ul><ul><li>O bom desenvolvedor : </li></ul><ul><ul><li>Conhece várias linguagens </li></ul></ul><ul><ul><li>Nã0 se apega a tecnologia </li></ul></ul><ul><ul><li>Se apega a boas práticas e resultados </li></ul></ul><ul><ul><li>Está atento diariamente ao que está acontecendo </li></ul></ul><ul><ul><li>Recomendação de estudo: </li></ul></ul><ul><ul><ul><li>Muita orientação a objetos </li></ul></ul></ul><ul><ul><ul><li>Padrões de Projeto </li></ul></ul></ul><ul><ul><ul><li>Extreme Program </li></ul></ul></ul><ul><ul><ul><li>Metodologias Ágeis </li></ul></ul></ul>

×