PHP
Programação
  Poderosa


     PHP: Programação Poderosa
 Anderson Casimiro – Duosys / ProPHP
Conteúdo
●   Apresentação
●   História
●   Prós e Contras
●   Funcionamento
●   Executando
●   Conclusão



              ...
Apresentação
●   Desenvolvedor Sênior PHP
●   5 anos em desenvolvimento web
●   Palestrante PHP
    –   Conisli, PHP Confe...
História
●   1994 ~ 1996
    –   Rasmus Lerdorf
         ●   Engenheiro de Software / Apache
         ●   Yahoo
    –   Wr...
História
●   PHP 3 - 1998
    –   Andi Gutmans / Zeev Suraski
         ●   Zend
    –   Core reescrito
    –   Abertura pa...
História
●   PHP 4 – 2000
    –   Zend Engine
         ●   Core do PHP
         ●   Converte em “bytecode”, depois executa...
História
●   PHP 5 – 2004
    –   Zend Engine 2
    –   POO Aprimorada
         ●   Destrutores, interfaces, PPP, etc.
   ...
História – o futuro
●   PHP 6 - ????
    –   Suporte a unicode a partir do núcleo
    –   Eliminação de diretivas insegura...
Prós e Contras
●   Open-source                    ●   Open-source
●   Multi-plataforma               ●   Falta(va)
●   Int...
Prós
●   ~10MB (pacote completo)
●   Baixa carga de servidor
●   Conectividade com BD
    –   Mysql,Oracle,DB2,SQLServer,S...
Contras
●   Sem suporte completo para Unicode
●   Tipagem fraca
●   Inconsistência na nomenclatura
●   Falta de uso de pad...
Apêndice 1: Porque eu uso?
●   Curva de aprendizagem
●   Constante evolução
●   Custo muito baixo / Resultados excelentes
...
Funcionamento
Cliente
             Requisição




                             Banco de Dados
                            ...
Funcionamento
●   Servidor
    –   Processa a requisição
         ●   Acessa BD, XMLs, serviços, etc
         ●   Gera uma...
Executando
●   Tags: <? ?>, <?php ?>
●   Comandos: terminam em ;
●   Blocos: definidos por { }
●   Variáveis: $
●   Consta...
Executando
●   Strings
    –   aspas simples: 'string “crua”, 'entende'?'
    –   aspas duplas: “string $dinamica, 'morou'...
Executando
●   Integers e floats
    –   1234, -123
    –   0123 (octal: 83)
    –   0x1A (hexadecimal: )
    –   1.234
  ...
Executando
●   Array
    –   $arr = array(1,2,3)
    –   $arr = array(array(1,2,3),array('a','b','c'))
    –   $arr[] = 1
...
Executando
●   Boolean
    –   true | false
    –   “a”,”321”,1, -1,array(1)
    –   “”,0,array(),null
●   Null
    –   nu...
Executando
●   Resource
    –   Tipo para identificar entidades externas
         ●   Conexão BD, ponteiro de Arquivos, et...
Executando
●   Olá Mundo, hoje é 28/09/2007
    <?
      echo “Ol&aacute; Mundo, hoje &eacute; ”;
      echo date(“d/m/Y”)...
Executando
●   Select (html) com os meses do ano
    <?
     $meses = array(0,'Janeiro','Fevereiro',
    'Março','Abril','...
Executando
●   Sequência de Fibonacci
function Fibonacci( $steps = 20 ){
  list($cur,$nxt,$inc,$seq) = array(0,1,1,array()...
Apêndice 2: loops
●   for($i = 0; $i < $j; $i++){}
●   while($condicao){}
●   do{}while($condicao)
●   foreach($array as $...
Executando
  ●   Formulários HTML
<form action=quot;script.php?var=1quot; method=quot;postquot;>
  <input type=quot;hidden...
Executando
●   script.php
echo $var;                                   Array(
print_r($_GET);                             ...
Executando
●   Conexão com BD MySQL – estilo velho
mysql_connect('host','usuario','5 3 N h 4');
mysql_select_db('schema');...
Executando
●   Conexão com BD MySQL – PDO


$db = new PDO('mysql:host=servidor;dbname=schema',
              'usuario','5 ...
Executando
●   XML: procurando dados
              <colecao>
                <disco id=quot;1quot;>
                  <ban...
Executando
 ●   busca.php
$sx = simplexml_load_file('colecao.xml');
$busca = $sx->xpath(quot;//disco[album='Karma']/bandaq...
Apêndice 3: XPath
●   Usado para busca de informação
    –   Atributos e Elemrntos
●   Padrão de sintaxe de busca em XML
●...
Conclusão
●   Linguagem madura
●   Comunidade ativa
●   Robusto e repleto de recursos
    –   O que não está pronto hoje é...
Conclusão
●   Grandes projetos
    –   Wallstreet Online, EA Games, McAfee
    –   Lucent, Nortel, Avaya, Lycos
    –   Wi...
Dúvidas???



     PHP: Programação Poderosa
 Anderson Casimiro – Duosys / ProPHP
ProPHP
●   www.prophp.com.br
●   Grupo de Profissionais PHP
●   Promove e fortalece iniciativas
    –   Eventos, palestras...
Duosys
●   www.duosys.com.br
●   Desenvolvimento, Análise, Assessoria e
    Treinamentos
●   anderson.casimiro@duosys.com....
Duodraco
●   duodraco.com
●   PHP e Tecnologia
●   Artigos, notícias, tutoriais
●   anderson@duodraco.com




            ...
Próximos SlideShares
Carregando em…5
×

PHP Programação Poderosa

3.134 visualizações

Publicada em

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

Sem downloads
Visualizações
Visualizações totais
3.134
No SlideShare
0
A partir de incorporações
0
Número de incorporações
47
Ações
Compartilhamentos
0
Downloads
138
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

PHP Programação Poderosa

  1. 1. PHP Programação Poderosa PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  2. 2. Conteúdo ● Apresentação ● História ● Prós e Contras ● Funcionamento ● Executando ● Conclusão PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  3. 3. Apresentação ● Desenvolvedor Sênior PHP ● 5 anos em desenvolvimento web ● Palestrante PHP – Conisli, PHP Conference, FADAP (Tupã - SP) ● Projetos: Saúde, RH, Comércio ● Atualmente: – Controle de tráfego; inteligência de trânsito ● www.duodraco.com PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  4. 4. História ● 1994 ~ 1996 – Rasmus Lerdorf ● Engenheiro de Software / Apache ● Yahoo – Wrapper Perl – Personal Home Pages – PHP/FI (Form Interpreter) ● 2ª versão ● Analise de consultas SQL PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  5. 5. História ● PHP 3 - 1998 – Andi Gutmans / Zeev Suraski ● Zend – Core reescrito – Abertura para a comunidade – Maturidade – 1999: +1 milhão de dominios usavam PHP PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  6. 6. História ● PHP 4 – 2000 – Zend Engine ● Core do PHP ● Converte em “bytecode”, depois executa – CLI – Interpretador de Linha de Comando – Performance melhorada – Sessions – Orientação a Objetos PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  7. 7. História ● PHP 5 – 2004 – Zend Engine 2 – POO Aprimorada ● Destrutores, interfaces, PPP, etc. ● Exceptions – Facilidades com XML ● SimpleXML – SPL – Standard PHP Library – Performance e segurança aprimorados PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  8. 8. História – o futuro ● PHP 6 - ???? – Suporte a unicode a partir do núcleo – Eliminação de diretivas inseguras ● register_globals, magic_quotes – PDO – conexão padrão com BD – XMLReader e XMLWriter – Namespaces – Aprimoramentos ● sintaxe, performance e segurança PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  9. 9. Prós e Contras ● Open-source ● Open-source ● Multi-plataforma ● Falta(va) ● Integrável – framework ● Leve e rápido – empresas grandes – marketing ● Comunidade – certificação ● Extensível ● Segurança ● Crescente – configuração PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  10. 10. Prós ● ~10MB (pacote completo) ● Baixa carga de servidor ● Conectividade com BD – Mysql,Oracle,DB2,SQLServer,SQLite,Postgres ● PECL e PEAR – PHPClasses, frameworks ● Sempre atualizado ● Oracle e IBM PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  11. 11. Contras ● Sem suporte completo para Unicode ● Tipagem fraca ● Inconsistência na nomenclatura ● Falta de uso de padronização ● POO ainda deficiente – Tipagem, sobrecarga, namespace/módulo ● Marketing PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  12. 12. Apêndice 1: Porque eu uso? ● Curva de aprendizagem ● Constante evolução ● Custo muito baixo / Resultados excelentes ● Extensões, bibliotecas, comunidade ● IDEs e ferramentas ● “O futuro dos sistemas é a web; PHP foi feito para a web, diferente de outras linguagens e plataformas” PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  13. 13. Funcionamento Cliente Requisição Banco de Dados __________________ Mysql Postgres Servidor Web Oracle _______________ SQLServer Apache Resposta ... IIS Xitami iSeries – IBM ... PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  14. 14. Funcionamento ● Servidor – Processa a requisição ● Acessa BD, XMLs, serviços, etc ● Gera uma saída (HTML, XML, webservice, etc...) – Retorna para o cliente ● Navegador, cosumidor ws, agregador RSS, etc... ● Cliente – Renderiza e processa a resposta – XML, xHTML, Javascript, CSS, etc... PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  15. 15. Executando ● Tags: <? ?>, <?php ?> ● Comandos: terminam em ; ● Blocos: definidos por { } ● Variáveis: $ ● Constantes: define('Nome',valor) ● Tipos – String, integer, float, boolean, object, array, null e resource PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  16. 16. Executando ● Strings – aspas simples: 'string “crua”, 'entende'?' – aspas duplas: “string $dinamica, 'morou'? n” – heredoc: <<<STR Olha que coisa, posso escrever pulando linhas 'com aspas simples' ou “duplas” e com $variaveis STR PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  17. 17. Executando ● Integers e floats – 1234, -123 – 0123 (octal: 83) – 0x1A (hexadecimal: ) – 1.234 – 1.2e3 (notação científica: 1200) PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  18. 18. Executando ● Array – $arr = array(1,2,3) – $arr = array(array(1,2,3),array('a','b','c')) – $arr[] = 1 – $arr[3][] = 'teste' – $arr['testando'] = 'que coisa' – $a = “teste”; ● $a[2] //'s' PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  19. 19. Executando ● Boolean – true | false – “a”,”321”,1, -1,array(1) – “”,0,array(),null ● Null – null é null uai PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  20. 20. Executando ● Resource – Tipo para identificar entidades externas ● Conexão BD, ponteiro de Arquivos, etc... ● Object – Identifica instâncias de objetos ● PDO, SimpleXMLElement ● stdClass PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  21. 21. Executando ● Olá Mundo, hoje é 28/09/2007 <? echo “Ol&aacute; Mundo, hoje &eacute; ”; echo date(“d/m/Y”); ?> PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  22. 22. Executando ● Select (html) com os meses do ano <? $meses = array(0,'Janeiro','Fevereiro', 'Março','Abril','Maio','Junho','Julho','Agosto', 'Setembro','Outubro','Novembro','Dezembro'); ?> <select name=”meses”> <?for($i = 1,$i < count($meses);$i++){?> <option value=”<?=$i?>”> <?=$meses[$i]?> </option> <?}?> </select> PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  23. 23. Executando ● Sequência de Fibonacci function Fibonacci( $steps = 20 ){ list($cur,$nxt,$inc,$seq) = array(0,1,1,array()); do{ $inc++; $seq[] = $cur; $add = $cur + $nxt; $cur = $nxt; $nxt = $add; } while ( $inc <= $steps ); return $seq; } echo implode(' - ',Fibonacci( 20 )); PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  24. 24. Apêndice 2: loops ● for($i = 0; $i < $j; $i++){} ● while($condicao){} ● do{}while($condicao) ● foreach($array as $chave=>$valor){} ● foreach($array as $valor){} ● foreach($obj as $atributo=>$valor){} – Adoro o foreach PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  25. 25. Executando ● Formulários HTML <form action=quot;script.php?var=1quot; method=quot;postquot;> <input type=quot;hiddenquot; name=quot;varquot; value=quot;2quot; /> Nome: <input type=quot;textquot; name=quot;nomequot; id=quot;nomequot; /><br /> Preferencias: <br /> <input type=quot;checkboxquot; name=quot;pref[]quot; value=quot;phpquot; /> PHP<br /> <input type=quot;checkboxquot; name=quot;pref[]quot; value=quot;outraquot; /> Outras<br /> <button type=quot;submitquot;>Vai!!!</button> </form> PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  26. 26. Executando ● script.php echo $var; Array( print_r($_GET); [var] => 1 print_r($_POST); ) Array( [var] => 2 [nome] => teste [pref] => Array( [0] => php [1] => outra ) ) PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  27. 27. Executando ● Conexão com BD MySQL – estilo velho mysql_connect('host','usuario','5 3 N h 4'); mysql_select_db('schema'); $qry = mysql_query(quot;SELECT nome,idade FROM usuariosquot;); while($rs = mysql_fetch_array($qry)){ echo quot; - {$rs['nome']} ({$rs['idade']})<br />quot;; } mysql_close(); PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  28. 28. Executando ● Conexão com BD MySQL – PDO $db = new PDO('mysql:host=servidor;dbname=schema', 'usuario','5 3 N H 4'); foreach ($dbh->query(quot;SELECT nome,idade FROM usuariosquot;) as $rs){ echo quot; - {$rs['nome']} ({$rs['idade']})<br />quot;; } PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  29. 29. Executando ● XML: procurando dados <colecao> <disco id=quot;1quot;> <banda>Hammerfall</banda> <album>Glory to the Brave</album> </disco> <disco id=quot;2quot;> <banda>Kamelot</banda> <album>Ghost Opera</album> </disco> <disco id=quot;3quot;> <banda>Kamelot</banda> <album>Karma</album> </disco> </colecao> PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  30. 30. Executando ● busca.php $sx = simplexml_load_file('colecao.xml'); $busca = $sx->xpath(quot;//disco[album='Karma']/bandaquot;); print_r($busca); Array( [0] => SimpleXMLElement Object( [0] => Kamelot ) ) PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  31. 31. Apêndice 3: XPath ● Usado para busca de informação – Atributos e Elemrntos ● Padrão de sintaxe de busca em XML ● XQuery e XPointer baseados em XPath ● Base para o XSLT – PHP suporta XSL PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  32. 32. Conclusão ● Linguagem madura ● Comunidade ativa ● Robusto e repleto de recursos – O que não está pronto hoje é perfeitamente possível de ser implementado. ● Grandes empresas investem – Intel, SAP ● Apoio tecnológico – IBM, Oracle, Microsoft PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  33. 33. Conclusão ● Grandes projetos – Wallstreet Online, EA Games, McAfee – Lucent, Nortel, Avaya, Lycos – Wikipedia, Wordpress, Invision ● Leve, Rápido, Robusto e Poderoso ● Precisa mais? PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  34. 34. Dúvidas??? PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  35. 35. ProPHP ● www.prophp.com.br ● Grupo de Profissionais PHP ● Promove e fortalece iniciativas – Eventos, palestras, atividades, etc... PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  36. 36. Duosys ● www.duosys.com.br ● Desenvolvimento, Análise, Assessoria e Treinamentos ● anderson.casimiro@duosys.com.br PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP
  37. 37. Duodraco ● duodraco.com ● PHP e Tecnologia ● Artigos, notícias, tutoriais ● anderson@duodraco.com PHP: Programação Poderosa Anderson Casimiro – Duosys / ProPHP

×