1 / 89

PHP e Sistemas de Informação Web

PHP e Sistemas de Informação Web. João Paulo Ribeiro jpribeiro.com. Hello world!. João Paulo Ribeiro. Graduando (Concluinte) de Ciência da Computação – UFCG Pesquisador no Laboratório de Sistemas de Informação 10 anos de experiência em desenvolvimento para Web

pooky
Télécharger la présentation

PHP e Sistemas de Informação Web

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP e Sistemas de Informação Web João Paulo Ribeiro jpribeiro.com

  2. Hello world! João Paulo Ribeiro • Graduando (Concluinte) de Ciência da Computação – UFCG • Pesquisador no Laboratório de Sistemas de Informação • 10 anos de experiência em desenvolvimento para Web • Jpribeiro.com / joao@jpribeiro.com

  3. CERC (2002) 1º site de escola da cidade a disponibilizar o boletim online

  4. Cesrei (2006) Sistema de controle acadêmico

  5. O Que é ? • Linguagem de programação (sério?) • Focada na web • Inicialmente, PHP = Personal Home Page (Péssimo) • Depois, PHP: • PHP • Hypertext • Processor • (Recursivo, e bem • melhor)

  6. Histórico • 1994: Páginas HTML estáticas

  7. Histórico • Rasmus Lerdorf criou o core de PHP (em C) com uma série de utilitários para dinamizar/monitorar o conteúdo de seu próprio site • Comunidade do software livre interessou-se e contribuiu para a criação do PHP/FI (Personal Home Page / Forms Interpreter)

  8. Histórico • Em 1998, foi lançado o PHP 3, primeiro que se assemelha com o atual (PHP/FI, em sua versão 2, foi descontinuado) • Infraestrutura sólida para diferentes bancos de dados, protocolos e APIs • PHP 4 lançado em 2000, com nova Zend Engine • Zend = Zeev Suraski + Andi Gutmans • Melhoria de performance nos servidores • PHP 5 (versão atual) lançado em 2004 • Orientação a objetos

  9. Por que aprender • PHP é uma das linguagens mais utilizadas do mundo • Figura no top 10 do TIOBE index (www.tiobe.com) há 10 anos • Atualmente (Abril 2012), está na 6ª posição, atrás dos “Cs” (C, C++, Objective-C e C#) e Java

  10. Por que aprender • PHP é uma das linguagens mais utilizadas do mundo • PHP é usado em 77,6% dos sites na internet, de acordo com os dados da W3Techs (http://w3techs.com) – sendo a linguagem server-side mais utilizada

  11. Por que aprender • Tem muita vaga de trabalho • Dados do site Indeed.com, linguagens server-side (EUA)

  12. Por que aprender • Tem muita vaga de trabalho • Dados do site JobsTractor (jobstractor.com), com as vagas anunciadas via Twitter (16.855 vagas anunciadas em março de 2012)

  13. Quem usa PHP?

  14. Quem usa

  15. Quem usa

  16. Quem usa

  17. Quem usa Terceiro maior motor de busca do mundo, principal da China (ultrapassando Google e Yahoo)

  18. Quem usa

  19. Quem usa

  20. Quem usa Apresentação durante a Semana Acadêmica de Computação:-)

  21. Características • Linguagem de scripts • Código pode ser mesclado em meio a HTML

  22. Características Página HTML resultante Código-fonte do HTML resultante

  23. Características • Linguagem interpretada • Código não é compilado - interpretado a cada execução • Roda em servidor • Servidor executa o interpretador PHP • Apache HTTP Server: • Servidor web mais popular do mundo (mais de 100 milhões de sites – WOW) • Versões para muitos diferentes SO • Open-source

  24. Características • Processador de hipertextoserver-side

  25. Características • Multiplataforma • Interpretadores para as mais diferentes plataformas • Unix, Linux, Windows, OS X, Risc, Netware, Solaris........ • Disponibilizado o código-fonte no site oficial (php.net) • Write once, run everywhere • Open-source! • Programação procedural, orientada a objetos, ou híbrida

  26. Características • PHP também pode ser utilizado em outras formas: • CLI: Command Line Interface • PHP-GTK: Extensão para escrever aplicações desktop com interface gráfica • Segundo a documentação oficial: “PHP is probably not the very best language to create a desktop application with a graphical user interface”

  27. Características • Output • HTML • Imagens (Extensão GD): GIF, PNG, JPEG, WBMP, XPM • PDF (Extensão PDFlib) • Flash (Extensão libswf) • XML, XHTML (Extensão libxml) • ... • Existem muitas (muitas) extensões na internet: • PECL (PHP Extension Community Library): 280 pacotes • PEAR (PHP Extension and Application Repository): 586 pacotes

  28. Características • Um dos pontos mais fortes de PHP é sua integração incrivelmente simples com bancos de dados • Camadas de abstração: • DBA: Database Abstraction Layer • dbX: Abstração de algum BD específico (X) • ODBC: Open Data Base Connectivity • Adabas D, IBM DB2, iODBC, Solid, Sybase SQL Anywhere • PDO: PHP Data Objects

  29. Características • Extensões de SGBDs específicos: MySQL PostgreSQL Oracle SQL Server SQLite Mongo IBM DB2 Firebird/Interbase CUBRID DB+++ dBase filePro Frontbase Sybase Ingres MaxDB (Entre outros)

  30. Características • PHP dá suporte a diversos protocolos de comunicação • LDAP: Lightweight Directory Access Protocol • IMAP: Internet Message Access Protocol • POP3: Post Office Protocol • SMTP: Simple Mail Transfer Protocol • SOAP: Simple Object Access Protocol • ... • Também pode abrir conexões por sockets, e comunicar-se usando qualquer protocolo

  31. Características • Ou seja, você escolhe: • Servidor web: Apache, IIS, LiteSpeed, TUX, thttpd, ... • Sistema operacional: Unix, Linux, Windows, OS X, Risc, ... • Programação procedural, orientada a objetos, ou híbrida • Extensões • SGBD • Protocolos de comunicação = Flexibilidade

  32. A linguagem em si

  33. Delimitando o código PHP • Maneira normal e bonita, para todas as ocasiões • Outras maneiras, para os diferentões • Para código embutido em HTML • Short tags (depende de configuração)

  34. Tipos • Primitivos • Integer • Float (32 bits) • Double (64 bits) • Boolean • String (não há limite máximo)

  35. Tipos • Arrays • Na verdade, são mapas (arrays associativos) Array associativo “João” “Paulo” 42 TRUE Índices Valores Qualquer tipo Integer ou string

  36. Tipos • Arrays • Criação do array • Conteúdo das variáveis com o comando var_dump($variavel): var_dump($outro_array) var_dump($um_array)

  37. Tipos • Arrays • Acesso ao array $um_array $outro_array Acesso aos arrays

  38. Tipos • Arrays • Inserir no array Array original Array após a inserção acima

  39. Tipos • Arrays • Inserir no array Array original Array após inserções acima

  40. Tipos • Arrays • Deletar do array (usar função unset($variavel)) Array após a remoção acima Array original Índice 2 foi removido, e o array não foi reindexado (índices mantidos)

  41. Tipos • Arrays • Passar a variável do array como argumento para a função unset($variavel)vai resultar na remoção completa do array Ao tentar acessar a variável $outro_array,

  42. Tipos Obs: Strings podem ser tratadas como arrays de caracteres

  43. Tipos • Tipos especiais • Resource: Variável especial, que armazena referência para recursos externos (handlers de arquivos, conexões de banco de dados, canvas de imagens) • NULL: Indica quando uma variável não possui nenhum valor . A variável tem valor NULL se: • Foi definida com a constante NULL; • Ainda não recebeu nenhum valor; • Foi apagada através de unset() • Object: Instância de classe

  44. Sistema de Tipos • PHP é dinamicamente tipada • Variáveis, parâmetros e expressões não têm tipo fixo associado. Apenas valores têm tipo, e as variáveis podem assumir valores de diferentes tipos durante a execução do programa. • Ou seja, em PHP não há declaração de variáveis

  45. Sistema de Tipos • PHP é fracamente tipada • A conversão de um valor de um tipo para outro é feita implicitamente (coerção) • O programador deve ter cuidado com essa feature da linguagem, especialmente estes dois seguintes casos “estranhos”: Coerção de String para Integer

  46. Sistema de Tipos • Conversão de strings para números • Se a string está sendo avaliada em um contexto numérico, o valor resultante é numérico, determinado por essas regras: • Se a string não contém os caracteres “.”, “e” e “E”, e seu valor numérico está nos limites de Integer, é tratada como número inteiro • Caso contrário, é tratada como float • O valor numérico é dado pela porção inicial da string. Se essa porção não for um número válido, o valor é 0

  47. Sistema de Tipos Conversão de strings para números

  48. Sistema de Tipos • Conversão em Boolean • Se for usado em operador, função ou estrutura de controle que requer argumento Boolean, qualquer valor é convertido automaticamente em Boolean

  49. Sistema de Tipos • Checagem de tipos • Por ser dinamicamente tipada, não há checagem de tipos em PHP • Há funções para a observação do tipo da variável, para uma checagem de tipos manual, caso seja necessário: • is_array() • is_bool() • is_double() • is_float() • is_int() • is_null() • is_numeric() • is_object() • is_resource() • is_scalar() • is_string() • gettype() • get_resource_type() • get_class()

  50. Sistema de Tipos • PHP 5 introduziu o conceito de Type Hinting • Com Type Hinting, é possível forçar que os parâmetros de funções sejam de uma classe específica de Object, Interface ou Array (esse, apenas desde PHP 5.1)

More Related