php - o que, porquê e como
Post on 05-Dec-2014
3.887 Views
Preview:
DESCRIPTION
TRANSCRIPT
O quê, porquê e como.
Augusto Pascutti - @augustohp1Monday, April 25, 2011
O QUE É?
2Monday, April 25, 2011
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
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
UM POUCO DE HISTÓRIA
5Monday, April 25, 2011
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
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
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
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
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
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
HTTP O QUÊ?
12Monday, April 25, 2011
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
E EU KIKO?
14Monday, April 25, 2011
E EU KIKO?
• HTTP é o protocolo utilizado por toda aplicação na internet
• Cliente (Navegador) e Servidor
15Monday, April 25, 2011
ESTE É VOCÊ
Você quer acessar www.google.com com o navegador de sua preferência.
16Monday, April 25, 2011
Um servidor HTTP processa a requisição e devolve o recurso pedido.
O SERVIDOR RECEBE
17Monday, April 25, 2011
ESTE É VOCÊ
O navegador processar a resposta do servidor e exibe a página para você.
18Monday, April 25, 2011
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
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
PORQUE USAR PHP?
21Monday, April 25, 2011
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
BAIXO CUSTO
23Monday, April 25, 2011
BAIXO CUSTO
O PHP pode funcionar em conjunto com uma infinidade de tecnologias, a grande maioria é gratuita (Open Source)
24Monday, April 25, 2011
FLEXÍVEL
25Monday, April 25, 2011
FLEXÍVEL
26Monday, April 25, 2011
CURVA DE APRENDIZADO
27Monday, April 25, 2011
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
LARGAMENTE UTILIZADA?
29Monday, April 25, 2011
LARGAMENTE UTILIZADA?
30Monday, April 25, 2011
CONTRIBUEM
31Monday, April 25, 2011
CONTRIBUEM
32Monday, April 25, 2011
ROBUSTO
33Monday, April 25, 2011
ROBUSTO
Concepção atual para suportar de dezenas a milhares de requisições por segundo sem problemas.
34Monday, April 25, 2011
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
COMUNIDADE
36Monday, April 25, 2011
COMUNIDADE
• Core developers do PHP
• Contribuidores/Líderes de Projetos
• Líderes de Grupo
• Desenvolvedores
37Monday, April 25, 2011
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
FRAMEWORK
39Monday, April 25, 2011
FRAMEWORK
Camada de abstração que reúne códigos comuns entre vários projetos promovendo uma funcionalidade genérica.
40Monday, April 25, 2011
COMO É O PHP?
41Monday, April 25, 2011
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
COMO ELE PARECE?
43Monday, April 25, 2011
1 <html>2 <body>3 <?php echo "Hello World"; ?>4 </body>5 </html>
44Monday, April 25, 2011
1 <?php2 $variavel_1 = "Uma string";3 $variavel_2 = 'Outra string';4 5 // Concatenando strings6 echo $variavel_1 . $variavel_2;
45Monday, April 25, 2011
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
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
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
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
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
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
1 <?php2 include '/path/para/arquivo.php';3 // include_once4 // require5 // require_once6 7 $o = new Classe_Do_Arquivo();
52Monday, April 25, 2011
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
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
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
MERCADO DE TRABALHO
56Monday, April 25, 2011
MERCADO DE TRABALHO
Sobrinhos
•Copiou•Colou•Funciounou•Beleza!
Profissionais
•Estudo constante•Valorizam o mercado•Em falta no mercado
57Monday, April 25, 2011
PROFISSIONAIS
58Monday, April 25, 2011
PROFISSIONAIS
Júnior
Pleno
Sênior
59Monday, April 25, 2011
COMEÇANDO
60Monday, April 25, 2011
COMEÇANDO
• Controle de versões
• Debug
• Um ou mais frameworks
• Testes (Unitários, Comportamentais e Interface)
61Monday, April 25, 2011
ALÉM DO SÊNIOR
62Monday, April 25, 2011
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
5 DICAS
64Monday, April 25, 2011
Seja ágil (metodologia)
65Monday, April 25, 2011
Não se importe com performance
66Monday, April 25, 2011
Leia
67Monday, April 25, 2011
Seja 2.0, compartilhe.
68Monday, April 25, 2011
Leia
69Monday, April 25, 2011
NOTA FINAL
70Monday, April 25, 2011
Sabe quantos anos uma tecnologia demorou para atingir um público de 50m de pessoas?
71Monday, April 25, 2011
Rádio: 38 anos
72Monday, April 25, 2011
TV: 13 anos
73Monday, April 25, 2011
Internet: 4 anos
74Monday, April 25, 2011
iPOD: 3 anos
75Monday, April 25, 2011
Facebook: 2 anos
76Monday, April 25, 2011
Sabia que os dez empregos mais
requisitados em 2010
77Monday, April 25, 2011
Não existiam em 2004!
Mais de metade é de TI.
78Monday, April 25, 2011
Resumindo
79Monday, April 25, 2011
Vocês estudam para empregos que ainda
não existem...
80Monday, April 25, 2011
... para usar tecnologias que
serão inventadas ...
81Monday, April 25, 2011
... para resolver problemas que nem
são problemas ainda.
82Monday, April 25, 2011
Concluindo
83Monday, April 25, 2011
LEIAM PO*$# !!
84Monday, April 25, 2011
Autores: Gutmans, Bakken, Rethans
ISBN: 8576080818
Editora: Alta Books
PHP PROGRAMAÇÃO PODEROSA
85Monday, April 25, 2011
Autor: Matt Zandstra
ISBN: 9788576082415
Editora: Apress / Alta Books
PHP OBJETOS, PADRÕES E PRÁTICA
86Monday, April 25, 2011
PERGUNTAS?@augustohp / augusto@phpsp.org.br
87Monday, April 25, 2011
top related