PHP - O que, porquê e como

87
O quê, porquê e como. Augusto Pascutti - @augustohp 1 Monday, April 25, 2011

description

Uma breve introdução ao PHP e seu ecossistema.

Transcript of PHP - O que, porquê e como

Page 1: PHP - O que, porquê e como

O quê, porquê e como.

Augusto Pascutti - @augustohp1Monday, April 25, 2011

Page 2: PHP - O que, porquê e como

O QUE É?

2Monday, April 25, 2011

Page 3: PHP - O que, porquê e como

O QUE É?

abbr: PHP HiperText Preprocessor

“PHP é uma linguagem de propósito genérico largamente utilizada e especializada para desenvolvimento Web que pode ser embutida no HTML ...” (php.net)

3Monday, April 25, 2011

Page 4: PHP - O que, porquê e como

O QUE É?

• Criada em 1995

• Utilizada em mais de 21 milhões de domínios

• Open Source

• Interpretada e Dinamicamente tipada

• Suporte aos paradigmas Procedural e Orientado a Objetos

• Sintaxe objetiva (simples) com influências de Perl e C

4Monday, April 25, 2011

Page 5: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

5Monday, April 25, 2011

Page 6: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

1995• Versão 1.0

• Rasmus Lerdorf

• Escrito em Perl

• PHP/FI: Personal Home Pages

• Open Source (Código Aberto)

6Monday, April 25, 2011

Page 7: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

1998

• Versão 3.0

• Rasmus + Zeev e Andi

• Escrito em C

• PHP: HyperText Preprocessor

• Suporte a Orientação a Objetos

• ~10% da internet7Monday, April 25, 2011

Page 8: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

2000

• Versão 4.0

• Zend Engine (Core PHP)

• Performance++ (Parse/Execute)

• Suporte a vários servidores HTTP

• Sessions, Output Buffering, CLI

• ~20% da internet8Monday, April 25, 2011

Page 9: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

2004

• Versão 5.0

• Zend Engine 2.0 (reescrita completa)

• Novo modelo de Objetos

• Performance++ (variáveis de compilação)

• Streams, PDO, SPL

9Monday, April 25, 2011

Page 10: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

2009

• Versão 5.3

• Namespaces, Closures, Late Static Binding, PHAR, mysqlnd

• Melhor suporte ao Microsoft Windows e IIS

• Garbage Collection para Referências Cíclicas

• Internacionalização, SQLite3, FileInfo

10Monday, April 25, 2011

Page 11: PHP - O que, porquê e como

UM POUCO DE HISTÓRIA

• Versão 5.4 (provável) ou 6.0

• Type Hints, Traits, HTTP server

• Incentivo de boas práticas (Strict Standards, PHP Standards)

• Segurança (Tainted Data)

• Assuntos “delicados”

• Annotations

• Suporte completo ao Unicode

11Monday, April 25, 2011

Page 12: PHP - O que, porquê e como

HTTP O QUÊ?

12Monday, April 25, 2011

Page 13: PHP - O que, porquê e como

HTTP O QUÊ?

• abbr: Hypertext Transfer Protocol

• Protocolo de Rede (Camada de Aplicação)

• Foco na troca de Informações (!= dados) distribuída e colaborativa

• Inicialmente coordenado pelo IETF e W3C

• Versão atual HTTP/1.1 em 1999 (RFC:2616)

13Monday, April 25, 2011

Page 14: PHP - O que, porquê e como

E EU KIKO?

14Monday, April 25, 2011

Page 15: PHP - O que, porquê e como

E EU KIKO?

• HTTP é o protocolo utilizado por toda aplicação na internet

• Cliente (Navegador) e Servidor

15Monday, April 25, 2011

Page 16: PHP - O que, porquê e como

ESTE É VOCÊ

Você quer acessar www.google.com com o navegador de sua preferência.

16Monday, April 25, 2011

Page 17: PHP - O que, porquê e como

Um servidor HTTP processa a requisição e devolve o recurso pedido.

O SERVIDOR RECEBE

17Monday, April 25, 2011

Page 18: PHP - O que, porquê e como

ESTE É VOCÊ

O navegador processar a resposta do servidor e exibe a página para você.

18Monday, April 25, 2011

Page 19: PHP - O que, porquê e como

ONDE ENTRA O PHP?

• Em conjunto com o servidor HTTP

• O PHP acessa a dados da requisição (GET, POST, DELETE ou UPDATE)

• O PHP retorna para o servidor HTTP o conteúdo da resposta (HTML)

19Monday, April 25, 2011

Page 20: PHP - O que, porquê e como

LAMP

• abbr: Linux + Apache + MySQL + PHP

• Arquitetura mais utilizada pelos servidores

• Outras arquiteturas: WAMP (Windows), MAMP (Mac)

• Kits de intalação prontos para uso:

• Zend Server e XAMPP

20Monday, April 25, 2011

Page 21: PHP - O que, porquê e como

PORQUE USAR PHP?

21Monday, April 25, 2011

Page 22: PHP - O que, porquê e como

PORQUE USAR PHP?

• Baixo custo e curva de aprendizado

• Largamente utilizado (>20 milhões de domínios)

• Ótima performance

• Excelente documentação

• Robusto, Flexível e Ecossistema maduro

22Monday, April 25, 2011

Page 23: PHP - O que, porquê e como

BAIXO CUSTO

23Monday, April 25, 2011

Page 24: PHP - O que, porquê e como

BAIXO CUSTO

O PHP pode funcionar em conjunto com uma infinidade de tecnologias, a grande maioria é gratuita (Open Source)

24Monday, April 25, 2011

Page 25: PHP - O que, porquê e como

FLEXÍVEL

25Monday, April 25, 2011

Page 26: PHP - O que, porquê e como

FLEXÍVEL

26Monday, April 25, 2011

Page 27: PHP - O que, porquê e como

CURVA DE APRENDIZADO

27Monday, April 25, 2011

Page 28: PHP - O que, porquê e como

CURVA DE APRENDIZADO

Melhor documentação existente (Exemplos e comentários) somada a uma extensa quantidade de informação na internet (Sites, Posts,

Projetos)

28Monday, April 25, 2011

Page 29: PHP - O que, porquê e como

LARGAMENTE UTILIZADA?

29Monday, April 25, 2011

Page 30: PHP - O que, porquê e como

LARGAMENTE UTILIZADA?

30Monday, April 25, 2011

Page 31: PHP - O que, porquê e como

CONTRIBUEM

31Monday, April 25, 2011

Page 32: PHP - O que, porquê e como

CONTRIBUEM

32Monday, April 25, 2011

Page 33: PHP - O que, porquê e como

ROBUSTO

33Monday, April 25, 2011

Page 34: PHP - O que, porquê e como

ROBUSTO

Concepção atual para suportar de dezenas a milhares de requisições por segundo sem problemas.

34Monday, April 25, 2011

Page 35: PHP - O que, porquê e como

ECOSSISTEMA

• Comunidade

• Frameworks, Componentes, CMSs

• Integrated Development Environment (IDEs)

• Ferramentas de Testes (Unitários, Comportamentais e Interface)

• Integração Contínua

• Ferramentas de Publicação

35Monday, April 25, 2011

Page 36: PHP - O que, porquê e como

COMUNIDADE

36Monday, April 25, 2011

Page 37: PHP - O que, porquê e como

COMUNIDADE

• Core developers do PHP

• Contribuidores/Líderes de Projetos

• Líderes de Grupo

• Desenvolvedores

37Monday, April 25, 2011

Page 38: PHP - O que, porquê e como

COMUNIDADE

• PHP Brasil Comunidades - PHPBC

• Mais de 20 grupos de usuários coordenados

• Encontre o seu em www.php.org.br

• PHPSP - Grupo de Usuários do Estado de São Paulo

• www.phpsp.org.br

38Monday, April 25, 2011

Page 39: PHP - O que, porquê e como

FRAMEWORK

39Monday, April 25, 2011

Page 40: PHP - O que, porquê e como

FRAMEWORK

Camada de abstração que reúne códigos comuns entre vários projetos promovendo uma funcionalidade genérica.

40Monday, April 25, 2011

Page 41: PHP - O que, porquê e como

COMO É O PHP?

41Monday, April 25, 2011

Page 42: PHP - O que, porquê e como

COMO É O PHP?

• Linguagem interpretada (sem compilação)

• Funciona plugada a um servidor HTTP

• http://localhost/index.php

• Funciona via linha de comando (CLI)

• $php index.php

42Monday, April 25, 2011

Page 43: PHP - O que, porquê e como

COMO ELE PARECE?

43Monday, April 25, 2011

Page 44: PHP - O que, porquê e como

1 <html>2 <body>3 <?php echo "Hello World"; ?>4 </body>5 </html>

44Monday, April 25, 2011

Page 45: PHP - O que, porquê e como

1 <?php2 $variavel_1 = "Uma string";3 $variavel_2 = 'Outra string';4 5 // Concatenando strings6 echo $variavel_1 . $variavel_2;

45Monday, April 25, 2011

Page 46: PHP - O que, porquê e como

1 <?php2 $x = 1; // inteiro3 $y = 10.99; // float (double)4 $z = $x*$y;5 $a = $x+"1"; // 2 (int)6 $b = $x."1"; // 11 (string)

46Monday, April 25, 2011

Page 47: PHP - O que, porquê e como

1 <?php2 $x = 1;3 if ( $x == 1 ) {4 echo "x == 1";5 } else if ( $x > 1 ) {6 echo "x maior que 1";7 } else {8 echo "x menor que 1";9 }

47Monday, April 25, 2011

Page 48: PHP - O que, porquê e como

1 <?php2 for ( $i=0; $i<=9; $i++ ) {3 echo '.';4 }5 6 echo PHP_EOL; // Quebra de linha7 8 while ( $i > 0 ) {9 echo '.';10 $i--;11 }

48Monday, April 25, 2011

Page 49: PHP - O que, porquê e como

1 <?php2 $a = array();3 $a[2009] = "Lancado PHP 5.3";4 $a[1995] = 'Criado PHP';5 $a[2000] = "Lancado PHP 4";6 $a[2004] = "Lancado PHP 5";7 8 asort($a);9 foreach ($a as $ano=>$texto) {10 echo "Em {$ano}: $texto" . PHP_EOL ;11 }12 /*13 Em 1995: Criado PHP14 Em 2000: Lancado PHP 415 Em 2004: Lancado PHP 516 Em 2009: Lancado PHP 5.317 */

49Monday, April 25, 2011

Page 50: PHP - O que, porquê e como

1 <?php2 function somar($a, $b) {3 return $a + $b;4 }5 6 function debug($a , $tag = '[Debug] ') {7 $tipo = gettype($a);8 echo $tag . $a . " ({$tipo})";9 }10 11 echo somar(2,3) . PHP_EOL ; // 512 echo debug("42"); // [Debug] 42 (string)

50Monday, April 25, 2011

Page 51: PHP - O que, porquê e como

1 <?php2 namespace HTTP;3 class Request { // extends Data_Container4 // implements HTTP_Object5 protected $_type;6 const TYPE_GET = 'GET';7 8 public function __construct($t) {9 $this->type = $t;10 }11 12 public function getType() {13 return $this->type;14 }15 16 public static function getTypes() {17 return array(self::TYPE_GET);18 }19 }20 21 $o = new Request('POST');22 echo $o->getType() . PHP_EOL; // POST23 24 print_r( Request::getTypes() );

51Monday, April 25, 2011

Page 52: PHP - O que, porquê e como

1 <?php2 include '/path/para/arquivo.php';3 // include_once4 // require5 // require_once6 7 $o = new Classe_Do_Arquivo();

52Monday, April 25, 2011

Page 53: PHP - O que, porquê e como

1 <?php2 if ( 10 == "10 vacas" ) {3 echo "Verdade";4 }5 6 if ( "falso" == true ) {7 echo "Verdade";8 }9 10 if ( 010 == 8 ) {11 echo "Verdade";12 }13 14 if ( "" == false ) {15 echo "Verdade";16 }

53Monday, April 25, 2011

Page 54: PHP - O que, porquê e como

1 <?php2 $dsn = "mysql:dbname=test;host=localhost";3 $banco = new Pdo($dsn,'user','pass');4 5 $sql = "SELECT nome6 FROM usuarios7 WHERE id = ?";8 $st = $banco->prepare($sql);9 $res = $st->execute(array(42));10 11 foreach ($res as $row) {12 echo "Nome: ".$row->nome;13 }

54Monday, April 25, 2011

Page 55: PHP - O que, porquê e como

1 <?php2 $produto = "Desconhecido";3 // $_GET, $_SESSION, $_COOKIE4 if ( isset($_POST['produto']) ) {5 echo $produto = filter_input(INPUT_POST, 'produto');6 }7 ?>8 <form action="" method="POST">9 <input name="produto" value="<?php echo $produto ?>">10 <input type="submit" />11 </form>

55Monday, April 25, 2011

Page 56: PHP - O que, porquê e como

MERCADO DE TRABALHO

56Monday, April 25, 2011

Page 57: PHP - O que, porquê e como

MERCADO DE TRABALHO

Sobrinhos

•Copiou•Colou•Funciounou•Beleza!

Profissionais

•Estudo constante•Valorizam o mercado•Em falta no mercado

57Monday, April 25, 2011

Page 58: PHP - O que, porquê e como

PROFISSIONAIS

58Monday, April 25, 2011

Page 59: PHP - O que, porquê e como

PROFISSIONAIS

Júnior

Pleno

Sênior

59Monday, April 25, 2011

Page 60: PHP - O que, porquê e como

COMEÇANDO

60Monday, April 25, 2011

Page 61: PHP - O que, porquê e como

COMEÇANDO

• Controle de versões

• Debug

• Um ou mais frameworks

• Testes (Unitários, Comportamentais e Interface)

61Monday, April 25, 2011

Page 62: PHP - O que, porquê e como

ALÉM DO SÊNIOR

62Monday, April 25, 2011

Page 63: PHP - O que, porquê e como

ALÉM DO SÊNIOR

• Contribuição em projetos Open Source

• Contribuição com o PHP em si

• Certificação (ZCE)

63Monday, April 25, 2011

Page 64: PHP - O que, porquê e como

5 DICAS

64Monday, April 25, 2011

Page 65: PHP - O que, porquê e como

Seja ágil (metodologia)

65Monday, April 25, 2011

Page 66: PHP - O que, porquê e como

Não se importe com performance

66Monday, April 25, 2011

Page 67: PHP - O que, porquê e como

Leia

67Monday, April 25, 2011

Page 68: PHP - O que, porquê e como

Seja 2.0, compartilhe.

68Monday, April 25, 2011

Page 69: PHP - O que, porquê e como

Leia

69Monday, April 25, 2011

Page 70: PHP - O que, porquê e como

NOTA FINAL

70Monday, April 25, 2011

Page 71: PHP - O que, porquê e como

Sabe quantos anos uma tecnologia demorou para atingir um público de 50m de pessoas?

71Monday, April 25, 2011

Page 72: PHP - O que, porquê e como

Rádio: 38 anos

72Monday, April 25, 2011

Page 73: PHP - O que, porquê e como

TV: 13 anos

73Monday, April 25, 2011

Page 74: PHP - O que, porquê e como

Internet: 4 anos

74Monday, April 25, 2011

Page 75: PHP - O que, porquê e como

iPOD: 3 anos

75Monday, April 25, 2011

Page 76: PHP - O que, porquê e como

Facebook: 2 anos

76Monday, April 25, 2011

Page 77: PHP - O que, porquê e como

Sabia que os dez empregos mais

requisitados em 2010

77Monday, April 25, 2011

Page 78: PHP - O que, porquê e como

Não existiam em 2004!

Mais de metade é de TI.

78Monday, April 25, 2011

Page 79: PHP - O que, porquê e como

Resumindo

79Monday, April 25, 2011

Page 80: PHP - O que, porquê e como

Vocês estudam para empregos que ainda

não existem...

80Monday, April 25, 2011

Page 81: PHP - O que, porquê e como

... para usar tecnologias que

serão inventadas ...

81Monday, April 25, 2011

Page 82: PHP - O que, porquê e como

... para resolver problemas que nem

são problemas ainda.

82Monday, April 25, 2011

Page 83: PHP - O que, porquê e como

Concluindo

83Monday, April 25, 2011

Page 84: PHP - O que, porquê e como

LEIAM PO*$# !!

84Monday, April 25, 2011

Page 85: PHP - O que, porquê e como

Autores: Gutmans, Bakken, Rethans

ISBN: 8576080818

Editora: Alta Books

PHP PROGRAMAÇÃO PODEROSA

85Monday, April 25, 2011

Page 86: PHP - O que, porquê e como

Autor: Matt Zandstra

ISBN: 9788576082415

Editora: Apress / Alta Books

PHP OBJETOS, PADRÕES E PRÁTICA

86Monday, April 25, 2011

Page 87: PHP - O que, porquê e como

PERGUNTAS?@augustohp / [email protected]

87Monday, April 25, 2011