PHP - Programação para seres humanos

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    PHP - Programação para seres humanos - Presentation Transcript

    1. PHP: Programação para Seres Humanos Carlos Henrique R. de Souza XX.Sepai.Belém.PA Outubro de 2006
    2. Agenda Objetivo  Paradigmas  A Web  O que é PHP / PHP­CLI / PHP­GTK  Características / Fatos  Primeiros passos  IDE   Orientação a Objetos  Frameworks  CMS  Segurança  Conclusões 
    3. Objetivo Desenvolvimento em PHP  Iniciantes em PHP  Iniciantes em outras linguagens  Alunos de cursos técnicos  / graduaçao em TI  Entusiastas  Quando usá­lo  Quando não usá­lo  
    4. Paradigmas Client­Side   Vantagens:  Alicerce robusto  Controle sobre os recursos  Liberdade local  Desvantagens:  Desenvolvimento ‘do zero’  Liberdade local  Bugfix 
    5. Paradigmas Server­Side 
    6. Paradigmas Server­Side   Vantagens:  Interface pré­modelada  Maior acessibilidade  Bugfix  Desvantagens:  Pouca (quase nenhuma) informação sobre cliente  Preocupação com tráfego  Popularização no desenvolvimento de aplicações 
    7. A Web Total Sites Across All Domains August 1995 ­ October 2006  Em novembro de 1992 – 26 servidores web fonte: netcraft  Em outubro de 2006 – 98 milhões de ‘hostnames’  “A internet náo é uma rede de computadores, mas sim de pessoas”
    8. O que é PHP ? Uma linguagem de programação open­  source e de propósitos­gerais Criada por Rasmus Lerdof em 1995 (PHP/FI)  Reescrita por Andi Gtmans e Zeev Suraszi   (Zend) em 1997 – PHP3 Utilizada especialmente para   desenvolvimento web (procedural e/ou OO) Misturada com HTML  TODO código PHP é interpretado no servidor 
    9. O que é PHP ? arquivo.php (no servidor)  <html> <p><b><? echo “Olá, Mundo!” ?></b></p> </html> arquivo.php (no cliente)  <html> <p><b>Olá, Mundo!</b></p> </html>
    10. O que é PHP ? PHP­CLI  Command Line Interpreter  Uso similar a bash, perl, awk  Client­Side  Cron tasks  #!/usr/bin/php –q <? echo “PHP aqui também!”; ?>
    11. O que é PHP ? PHP­GTK  Gimp Tool Kit  Bibliotecas escritas em C  Client/Server­Side  Cross­platform 
    12. Características Independente de Plataforma  Linux, HP­UX, Mac OS X, Win32 (NT/W95/W98/W2000),   BeOS, Solaris Servidores  Apache, MS­IIS / PWS, Xitami  Suporte nativo a diversos SGBDs  Adabas D, dBase, Empress, FilePro (apenas leitura),   Hyperware, IBM DB2, Informix, Ingres, Interbase,  FrontBase, mSQL, Direct MS­SQL, MySQL, ODBC, Oracle  (OCI7 e OCI8), Ovrimos, PostgreSQL, SQLite, Solid,  Sybase, Velocis, Unix dbm
    13. Características Extensões:  GD (imagens), LDAP, SNMP, SOAP, IMAP, FTP,   MCAL, IMSP, Java, Curl, gettext, SWF, CCVS,  zlib, etc...
    14. Características Tipagem dinâmica (‘duck’ typing) e   conversão automática If ( funcao_foo($arg_foo) ) { ... fazer algo ... } Funções suficientes! tipo int ou String 
    15. Características Integração com outras linguagens  (Java, Perl, MS.net , etc.)  public class JavaPHP {     private String nome = null;     public void setNome(String nome) {         this.nome = nome;     }     public String getNome() {         return nome;     } } <? $javaPHP = new Java('JavaPHP'); $javaPHP->setNome(\"Java+PHP\"); echo \"Método do Java = \" . $javaPHP->getNome(); ?> ex: PHPBrasil
    16. Características Sintaxe simples, semelhante a Perl e C  Perl: $conn = Pg::connectdb(\"dbname=foo host=localhost user=root password=123\"); PHP: $conn = pg_connect(\"host=localhost dbname=foo user=root password=123\") Otimizadores  APC, Zend Optimizer, Turck MMCache 
    17. Características Arrays  Ordenados  <?  $vetor[0] = “primeiro”; $vetor[1] = “segundo”; $vetor[] = “terceiro”;  ?> Associativos  <?  $vetor[‘caike’] = “php”; $vetor[‘jamesgoslin’] = “java”; $vetor[‘joselito’] = “asp”;  ?> 48 funções para array 
    18. Fatos 19.491.324 Domains  1.313.977 IP Addresses  fonte: netcraft
    19. Fatos “Top 10 Programming Languages” fonte: tiobe
    20. Fatos fonte: nexen
    21. Primeiros Passos Opção 1: LAMP  Linux com APT­GET  apt­get install apache2 php5 mysql­server php5­mysql   mysql­query­browser Compilações e instalações independentes  Opção 2: WAMP  EasyPHP (7.7mb)  Instalações independentes 
    22. IDEs Open­Source:  Eclipse (PHPEclipse, PHP­IDE), Tulip,   PHPDesigner Proprietárias:  Zend Studio, Dreamweaver 
    23. Orientação a Objetos Inspiraçao no mundo real  Introduzida no PHP 3  Reescrita para o PHP 4, mas ainda   insuficiente PHP5 = OO madura e similar a outras   linguagens
    24. Orientação a Objetos construtores e destrutores padrão  class BD{ var $conn; function __construct($host, $user, $pw){ $this­>conn = mysql_connect($host,$user,$pw); } function __destruct($host, $user, $pass){ mysql_close($this­>conn) ; } }
    25. Orientação a Objetos modificadores de acesso  public  private  protected  class Funcionario {  public $nome; protected $telefone; private $salario; } 
    26. Orientação a Objetos __set(), __get(), __call()  class Pessoa {   private $dt_nascimento;   function __set($atributo, $valor){     if($atributo == \"dt_nascimento\"){    $dt_nascimento = implode(\"­\",array_reverse(explode(\"/\",$valor))); }     } } $p1 = new Pessoa(); $p1­>dt_nascimento = \"03/09/1984\"; // ... dt_nascimento = 1984­09­03
    27. Orientação a Objetos __set(), __get(), __call()  class Conta {   private $saldo;   private $limite = 100;   function setSaldo() ...   function __get($at){    if($at == “saldo”) return $this­>saldo + $this­>limite;   } } $p1 = new Conta(); $p1­>setSaldo(200); echo $p1­>saldo; // 300
    28. Orientação a Objetos __set(), __get(), __call()  class Guitarra {   private $cordas;   private $captadores;   function __call($metodo, $args){    echo \"@#&!! $metodo não existe para a classe guitarra !\";   } } $a = new Guitarra(); $a­>tocarUmPagodao();
    29. Orientação a Objetos interfaces  interface IPessoa{ function fazerObrigacoes(); function seDivertir(); }
    30. Orientação a Objetos interfaces  class Garoto implements IPessoa{ private $obrigacoes = false; function fazerObrigacoes(){ echo “Fazer meu dever de casa”; $this­>obrigacoes = true; } function seDivertir(){ echo “Jogar playstation”; } function getObrigacoes(){ return $this­>obrigacoes; } }
    31. Orientação a Objetos interfaces  class Adulto implements IPessoa{ private $obrigacoes = false; function fazerObrigacoes(){ echo “Trabalhar para pagar o PS do meu filho”;  $this­>obrigacoes = true; } function seDivertir(){ echo “Verei o Papão jogar!”; } function getObrigacoes(){ return $this­>obrigacoes; } }
    32. Orientação a Objetos interfaces  class Deus{ function julgar(IPessoa $p){ if(!$p­>getObrigacoes()){ echo “Faça já suas obrigações!”; $p­>fazerObrigacoes(); } $p­>setDivertir(); } }
    33. Orientação a Objetos interfaces  $objPessoa1 = new Garoto(); Deus::julgar($objPessoa); Fazer meu dever de casa Jogar playstation $objPessoa2 = new Adulto(); Deus::julgar($objPessoa2); Trabalhar para pagar o PS do meu filho Verei o Papão jogar
    34. Orientação a Objetos classes e métodos abstratos  propriedades estáticas  clonagem  manipulação de erros (try/catch) 
    35. Frameworks Genial, ClassGenerator, MetaClass, Smarty,   PRADO, CakePHP, Symfony, etc. “ Não reinvente a roda, mas saiba como ela   foi feita ”
    36. Content Management System (CMS) Portais:  Joomla, Mambo, PHP­Nuke, etc ...  Blogs:  Wordpress, simplog  eCommerce:  phpShop, XT­Commerce  GroupWare:  NetOffice, PHPGroupWare 
    37. Segurança SQLInjection  XSS  Engenharia Social  
    38. SQL Injection Manipulação dos scripts SQL  $sql= “... WHERE nome = `$_POST[`nome`]` AND senha = ‘$_POST[`senha`]`”; Login: bla’ or 1 = 1 – Senha: 123 $sql =  “... WHERE nome = ‘bla’ or 1 =1 ­­ ` AND senha = ‘123`”; Sempre validar entrada, SEMPRE! 
    39. SQL Injection Ajudam a evitar ataques de SQLInjection:  addslashes  mysql_real_escape_string  magic_quotes 
    40. Cross-Site Scripting (XSS) Informação de um contexto (não­confiável) é inserida   em outro contexto Link em um e­mail: Fotos daquela sua amiga na festa  <a href =  \"http://xpto.com/?param=<script>...</script>”> Fotos daquela sua amiga na festa </a> <a href = “http://tinyurl.com/y6tz8”> Fotos daquela sua amiga na festa </a>
    41. Cross-Site Scripting (XSS) Ajudam a evitar ataques de XSS  strip_tags  htmlentities  Sempre validar entrada e SAÍDA! 
    42. Engenharia Social Independente de tecnologia  Caso Paris Hilton  Caso Harvard Business School  “ Não existe patch para falha humana...” 
    43. Conclusões PHP – programação para seres­humanos e   situações humanas no planeta Terra ! “ Quando tudo que se tem é um martelo... ” 
    44. Fim Referências  www.php.net  www.netcraft.com  www.opensourcecms.com  www.nexen.net  www.tiobe.com  http://ref.web.cern.ch/ref/CERN/CNL/2001/001/www­history/  Contato  carloshrsouza@equilibriumweb.com  www.equilibriumweb.com  www.step2rock.com  Grupo  phppaidegua­subscribe@yahoogroups.com 

    + caikesouzacaikesouza, 8 months ago

    custom

    835 views, 1 favs, 1 embeds more stats

    Uma introdução ao PHP.

    An introductory presentat more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 835
      • 831 on SlideShare
      • 4 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 22
    Most viewed embeds
    • 4 views on http://www.caikesouza.com

    more

    All embeds
    • 4 views on http://www.caikesouza.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories