PHP - O que, porquê e como
Upcoming SlideShare
Loading in...5
×
 

PHP - O que, porquê e como

on

  • 3,681 views

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

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

Statistics

Views

Total Views
3,681
Slideshare-icon Views on SlideShare
3,679
Embed Views
2

Actions

Likes
1
Downloads
59
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    PHP - O que, porquê e como PHP - O que, porquê e como Presentation Transcript

    • O quê, porquê e como. Augusto Pascutti - @augustohpMonday, April 25, 2011 1
    • O QUE É?Monday, April 25, 2011 2
    • 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)Monday, April 25, 2011 3
    • 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 CMonday, April 25, 2011 4
    • UM POUCO DE HISTÓRIAMonday, April 25, 2011 5
    • 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)Monday, April 25, 2011 6
    • 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 internetMonday, April 25, 2011 7
    • 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 internetMonday, April 25, 2011 8
    • 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, SPLMonday, April 25, 2011 9
    • 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, FileInfoMonday, April 25, 2011 10
    • 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 UnicodeMonday, April 25, 2011 11
    • HTTP O QUÊ?Monday, April 25, 2011 12
    • 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)Monday, April 25, 2011 13
    • E EU KIKO?Monday, April 25, 2011 14
    • E EU KIKO? • HTTP é o protocolo utilizado por toda aplicação na internet • Cliente (Navegador) e ServidorMonday, April 25, 2011 15
    • ESTE É VOCÊ Você quer acessar www.google.com com o navegador de sua preferência.Monday, April 25, 2011 16
    • O SERVIDOR RECEBE Um servidor HTTP processa a requisição e devolve o recurso pedido.Monday, April 25, 2011 17
    • ESTE É VOCÊ O navegador processar a resposta do servidor e exibe a página para você.Monday, April 25, 2011 18
    • 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)Monday, April 25, 2011 19
    • 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 XAMPPMonday, April 25, 2011 20
    • PORQUE USAR PHP?Monday, April 25, 2011 21
    • 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 maduroMonday, April 25, 2011 22
    • BAIXO CUSTOMonday, April 25, 2011 23
    • BAIXO CUSTO O PHP pode funcionar em conjunto com uma infinidade de tecnologias, a grande maioria é gratuita (Open Source)Monday, April 25, 2011 24
    • FLEXÍVELMonday, April 25, 2011 25
    • FLEXÍVELMonday, April 25, 2011 26
    • CURVA DE APRENDIZADOMonday, April 25, 2011 27
    • CURVA DE APRENDIZADO Melhor documentação existente (Exemplos e comentários) somada a uma extensa quantidade de informação na internet (Sites, Posts, Projetos)Monday, April 25, 2011 28
    • LARGAMENTE UTILIZADA?Monday, April 25, 2011 29
    • LARGAMENTE UTILIZADA?Monday, April 25, 2011 30
    • CONTRIBUEMMonday, April 25, 2011 31
    • CONTRIBUEMMonday, April 25, 2011 32
    • ROBUSTOMonday, April 25, 2011 33
    • ROBUSTO Concepção atual para suportar de dezenas a milhares de requisições por segundo sem problemas.Monday, April 25, 2011 34
    • ECOSSISTEMA • Comunidade • Frameworks, Componentes, CMSs • Integrated Development Environment (IDEs) • Ferramentas de Testes (Unitários, Comportamentais e Interface) • Integração Contínua • Ferramentas de PublicaçãoMonday, April 25, 2011 35
    • COMUNIDADEMonday, April 25, 2011 36
    • COMUNIDADE • Core developers do PHP • Contribuidores/Líderes de Projetos • Líderes de Grupo • DesenvolvedoresMonday, April 25, 2011 37
    • 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.brMonday, April 25, 2011 38
    • FRAMEWORKMonday, April 25, 2011 39
    • FRAMEWORK Camada de abstração que reúne códigos comuns entre vários projetos promovendo uma funcionalidade genérica.Monday, April 25, 2011 40
    • COMO É O PHP?Monday, April 25, 2011 41
    • 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.phpMonday, April 25, 2011 42
    • COMO ELE PARECE?Monday, April 25, 2011 43
    • 1 <html> 2 <body> 3 <?php echo "Hello World"; ?> 4 </body> 5 </html>Monday, April 25, 2011 44
    • 1 <?php 2 $variavel_1 = "Uma string"; 3 $variavel_2 = Outra string; 4 5 // Concatenando strings 6 echo $variavel_1 . $variavel_2;Monday, April 25, 2011 45
    • 1 <?php 2 $x = 1; // inteiro 3 $y = 10.99; // float (double) 4 $z = $x*$y; 5 $a = $x+"1"; // 2 (int) 6 $b = $x."1"; // 11 (string)Monday, April 25, 2011 46
    • 1 <?php 2 $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 }Monday, April 25, 2011 47
    • 1 <?php 2 for ( $i=0; $i<=9; $i++ ) { 3 echo .; 4 } 5 6 echo PHP_EOL; // Quebra de linha 7 8 while ( $i > 0 ) { 9 echo .; 10 $i--; 11 }Monday, April 25, 2011 48
    • 1 <?php 2 $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 PHP 14 Em 2000: Lancado PHP 4 15 Em 2004: Lancado PHP 5 16 Em 2009: Lancado PHP 5.3 17 */Monday, April 25, 2011 49
    • 1 <?php 2 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 ; // 5 12 echo debug("42"); // [Debug] 42 (string)Monday, April 25, 2011 50
    • 1 <?php 2 namespace HTTP; 3 class Request { // extends Data_Container 4 // implements HTTP_Object 5 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; // POST 23 24 print_r( Request::getTypes() );Monday, April 25, 2011 51
    • 1 <?php 2 include /path/para/arquivo.php; 3 // include_once 4 // require 5 // require_once 6 7 $o = new Classe_Do_Arquivo();Monday, April 25, 2011 52
    • 1 <?php 2 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 }Monday, April 25, 2011 53
    • 1 <?php 2 $dsn = "mysql:dbname=test;host=localhost"; 3 $banco = new Pdo($dsn,user,pass); 4 5 $sql = "SELECT nome 6 FROM usuarios 7 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 }Monday, April 25, 2011 54
    • 1 <?php 2 $produto = "Desconhecido"; 3 // $_GET, $_SESSION, $_COOKIE 4 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>Monday, April 25, 2011 55
    • MERCADO DE TRABALHOMonday, April 25, 2011 56
    • MERCADO DE TRABALHO Sobrinhos Profissionais •Copiou •Estudo constante •Colou •Valorizam o mercado •Funciounou •Em falta no mercado •Beleza!Monday, April 25, 2011 57
    • PROFISSIONAISMonday, April 25, 2011 58
    • PROFISSIONAIS Sênior Pleno JúniorMonday, April 25, 2011 59
    • COMEÇANDOMonday, April 25, 2011 60
    • COMEÇANDO • Controle de versões • Debug • Um ou mais frameworks • Testes (Unitários, Comportamentais e Interface)Monday, April 25, 2011 61
    • ALÉM DO SÊNIORMonday, April 25, 2011 62
    • ALÉM DO SÊNIOR • Contribuição em projetos Open Source • Contribuição com o PHP em si • Certificação (ZCE)Monday, April 25, 2011 63
    • 5 DICASMonday, April 25, 2011 64
    • Seja ágil (metodologia)Monday, April 25, 2011 65
    • Não se importe com performanceMonday, April 25, 2011 66
    • LeiaMonday, April 25, 2011 67
    • Seja 2.0, compartilhe.Monday, April 25, 2011 68
    • LeiaMonday, April 25, 2011 69
    • NOTA FINALMonday, April 25, 2011 70
    • Sabe quantos anos uma tecnologia demorou para atingir um público de 50m de pessoas?Monday, April 25, 2011 71
    • Rádio: 38 anosMonday, April 25, 2011 72
    • TV: 13 anosMonday, April 25, 2011 73
    • Internet: 4 anosMonday, April 25, 2011 74
    • iPOD: 3 anosMonday, April 25, 2011 75
    • Facebook: 2 anosMonday, April 25, 2011 76
    • Sabia que os dez empregos mais requisitados em 2010Monday, April 25, 2011 77
    • Não existiam em 2004! Mais de metade é de TI.Monday, April 25, 2011 78
    • ResumindoMonday, April 25, 2011 79
    • Vocês estudam para empregos que ainda não existem...Monday, April 25, 2011 80
    • ... para usar tecnologias que serão inventadas ...Monday, April 25, 2011 81
    • ... para resolver problemas que nem são problemas ainda.Monday, April 25, 2011 82
    • ConcluindoMonday, April 25, 2011 83
    • LEIAM PO*$# !!Monday, April 25, 2011 84
    • PHP PROGRAMAÇÃO PODEROSA Autores: Gutmans, Bakken, Rethans ISBN: 8576080818 Editora: Alta BooksMonday, April 25, 2011 85
    • PHP OBJETOS, PADRÕES E PRÁTICA Autor: Matt Zandstra ISBN: 9788576082415 Editora: Apress / Alta BooksMonday, April 25, 2011 86
    • PERGUNTAS? @augustohp / augusto@phpsp.org.brMonday, April 25, 2011 87