• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Despertando para o PHP
 

Despertando para o PHP

on

  • 4,402 views

Um a breve introdução ao mundo PHP, sintaxe, mercado e ecossistema

Um a breve introdução ao mundo PHP, sintaxe, mercado e ecossistema

Statistics

Views

Total Views
4,402
Views on SlideShare
4,384
Embed Views
18

Actions

Likes
5
Downloads
119
Comments
2

2 Embeds 18

http://www.slideshare.net 17
http://test.idoc.vn 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

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

    Despertando para o PHP Despertando para o PHP Presentation Transcript

    • Despertando para o PHP Rafael Dohms Friday, January 29, 2010
    • PHP abbr PHP [ˌpiː eitʃ ˈpiː] Abreviatura de PHP HyperText Preprocessor; 1. Linguagem Server-Side focada em criação de sistemas para a web; 2. Criada por Rasmus Ledorf em 94 e apoiada pelos fundadores da Zend; 3. Sintaxe simples com influências fortes de C, Perl e Java; 4. Linguagem dominante na internet moderna utilizada em mais de 21M domínios; 5. Terceira colocada do Ranking TIOBE; 6. Fácil de aprender, díficil de dominar. Friday, January 29, 2010
    • PHP abbr PHP [ˌpiː eitʃ ˈpiː] Abreviatura de PHP HyperText Preprocessor; 1. Linguagem Server-Side focada em criação de sistemas para a web; 2. Criada por Rasmus Ledorf em 94 e apoiada pelos fundadores da Zend; 3. Sintaxe simples com influências fortes de C, Perl e Java; 4. Linguagem dominante na internet moderna utilizada em mais de 21M domínios; 5. Terceira colocada do Ranking TIOBE; 6. Fácil de aprender, díficil de dominar. Friday, January 29, 2010
    • Quem é Rafael Dohms? Rafael Dohms é graduado Engenheiro da Computação pelo UniCEUB, com MBA em Projetos pela FGV. Tem 9 anos de experiência no mercado PHP e atualmente ocupa o cargo de Desenvolvedor Sênior e Especialista em PHP na empresa sul-africana SWAT/MIH. É certificado ZCE PHP5. Grande agitador da comunidade PHP é co-fundador do PHPDF e atual coordenador do PHPSP. Contribui ativamente na área de testes do PHP e é Host do PHPSPCast, o primeiro podcast sobre PHP do Brazil. Friday, January 29, 2010
    • Arquitetura de um acesso Friday, January 29, 2010
    • Arquitetura de um acesso Friday, January 29, 2010
    • Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
    • Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
    • Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
    • Arquitetura de um acesso http://www.php.net Servidor HTTP Friday, January 29, 2010
    • Arquitetura de um acesso http://www.php.net Servidor HTTP HTML Friday, January 29, 2010
    • Arquitetura C: de um acesso HTML http://www.php.net Servidor HTTP HTML Friday, January 29, 2010
    • Quem usa PHP? Friday, January 29, 2010
    • A escolha Por que PHP? Friday, January 29, 2010
    • Cliente/Gerente • Custo baixo • Praticamente todo ecossistema PHP é gratuito • Mão-de-obra • Programadores iniciantes e intermediários não faltam • Performance e Escalabilidade • Testado e provado Friday, January 29, 2010
    • Desenvolvedor • Baixa curva de Aprendizado • Sintaxe simples, material amplo • Oportunidades • O mercado tem abundância de vagas • Robusta • Flexível e mutante, pode fazer tudo que você imaginar Friday, January 29, 2010
    • PHP Fácil e Simples XAMPP - www.apachefriends.org Zend Server CE -http://www.zend.com/ XAMPP - www.apachefriends.org WAMP - www.wampserver.com Zend Server CE -http://www.zend.com/ MAMP -www.mamp.info XAMPP - www.apachefriends.org Zend Server CE -http://www.zend.com/ Friday, January 29, 2010
    • Codando PHP • IDE’s • Zend Studio (Eclipse) • PDT (Eclipse) • Aptana (Eclipse) • Komodo • NetBeans Vantagens de uma IDE • Text Editors - Autocomplete • TextMate (PHP Bundle) - Integração com VCS • VIM - Debugging e profiling integrado - Ferramentas em geral • EMACS Friday, January 29, 2010
    • Rodando PHP • Web • http://seusite.com/index.php • Linha de comando • php arquivo.php Friday, January 29, 2010
    • Show me the code! Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Sintaxe básica <?php Hello World! Hello Campus Party! Hello Campus Party! $string = "Hello World! n"; Como vai? echo $string; # Substituir World por Campus Party $string = str_replace("World", "Campus Party", $string); echo $string; // Adicionar um "Como vai?" $string = $string . "Como vai? n"; echo $string; ?> Friday, January 29, 2010
    • Tipagem fraca <?php $a = "2"; $a => 2/string echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; $a = "2" + 1; $a => 3/integer echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; $a = 1; $a => 1/integer echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; $a = 1 . "2"; $a => 12/string echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; ?> Friday, January 29, 2010
    • Tipagem fraca <?php Tipos do PHP: $a = "2"; $a => 2/string echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; Boolean $a = "2" + 1; Integer $a => 3/integer echo '$a => ' . $a . '/' . gettype($a) . PHP_EOL; Float (ou double) $a = 1; String $a => 1/integer echo '$a => ' Array . $a . '/' . gettype($a) . PHP_EOL; Object $a = 1 . "2"; $a => 12/string echo '$a => ' Resource . $a . '/' . gettype($a) . PHP_EOL; NULL ?> Friday, January 29, 2010
    • Tipos: Array e Hashes <?php Array ( // Um array [0] => a $a = array('a', 'b', 'c'); [1] => b [2] => c print_r($a); ) Array ( //Um Hash [a] => b $b = array('a' => 'b', 'c' => 'd'); ) [c] => d print_r($b); a d // Acessando dados Array echo $a[0] . PHP_EOL; ( echo $b['c'] . PHP_EOL; [0] => c [1] => b [2] => a //Funções ) rsort($a); c print_r($a); Array ( [0] => b echo array_shift($a) . PHP_EOL; [1] => a print_r($a); ) Friday, January 29, 2010
    • Condicionais: If <?php $a = true; $b = false; if ($a){ echo "A" . PHP_EOL; } if ($b){ echo "B" . PHP_EOL; }else{ echo "B?" . PHP_EOL; } if ($a || $b){ echo "A || B"; } if ($a && $b){ echo "A && B"; } Friday, January 29, 2010
    • Condicionais: If <?php $a = true; $b = false; O que é falso no PHP: if ($a){ echo "A" . FALSE PHP_EOL; } 0 (zero) (integer) if ($b){ 0.0 (zero) (float) echo "B" . PHP_EOL; “0” (zero) (string) }else{ echo "B?" . PHP_EOL; vazia (“”) String } Array Vazio NULL || B"; } if ($a || $b){ echo "A if ($a && $b){ echo "A && B"; } Friday, January 29, 2010
    • Condicionais: Switch <?php Cuidados com Tipagem Fraca $a = "joao"; switch($a){ “string” => integer == 0 case 'jose': echo "jose?" . PHP_EOL; break; case 0: echo "zero?" . PHP_EOL; break; case true: echo "verdadeiro?" . PHP_EOL; break; case 'joao': echo "joao!" . PHP_EOL; default: echo "qualquer um?!" . PHP_EOL; } zero? Friday, January 29, 2010
    • Loops: For e Foreach <?php $a = array('a', 'b', 'c'); for ($i = 0; $i < count($a); $i++){ echo $a[$i] . PHP_EOL; } a b c foreach( $a as $key => $letra){ echo $key . " => " . $letra. PHP_EOL; 0 => a 1 => b } 2 => c Friday, January 29, 2010
    • Paradigmas: Estrutural <?php 3 3 50 function add($a, $b){ return $a + $b; } echo add(1,2) . PHP_EOL; function divide($a, $b = 2){ return $a/$b; } echo divide(6) . PHP_EOL; function multiply(&$a, $b){ $a = $a * $b; } $a = 10; multiply($a, 5); echo $a . PHP_EOL; Friday, January 29, 2010
    • Paradigmas: OO <?php Scott HAL Model 2.34 class HAL // extends Computer // implements UserInterface { public $nome; public function __construct($nome) { $this->nome = $nome; } public function whoareyou() { echo $this->nome . PHP_EOL; } public static function version() { echo __CLASS__ . " Model 2.34" . PHP_EOL; } } $a = new HAL('Scott'); $a->whoareyou(); HAL::version(); Friday, January 29, 2010
    • Manipulação de Strings <?php HELLO WORLD! Hello World!Hello World!Hello World! Uryyb Jbeyq! $a = "Hello World!"; 12 !dlroW olleH echo strtoupper($a) . PHP_EOL; echo str_repeat($a, 3) . PHP_EOL; echo str_rot13($a) . PHP_EOL; echo strlen($a) . PHP_EOL; echo strrev($a) . PHP_EOL; Friday, January 29, 2010
    • Database <?php $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'passwd'); $qry = $db->prepare('SELECT * FROM tabela WHERE id = ?'); $res = $qry->execute(array(22)); //SELECT * FROM tabela WHERE id = 22 foreach($res as $linha){ echo $linha->id . PHP_EOL; } Friday, January 29, 2010
    • File System <?php $file = 'exemplo.txt'; file_put_contents($file, 'conteudo do arquivo'); echo file_get_contents($file) . PHP_EOL; chmod($file, "777"); Friday, January 29, 2010
    • SuperGlobals e Formulários <form action"" method="POST"> <input id="nome" name="nome"> </form> <?php $nome = filterInput($_POST['nome']); Friday, January 29, 2010
    • SuperGlobals e Formulários <form action"" method="POST"> <input id="nome" name="nome"> </form> <?php SuperGlobals $nome = filterInput($_POST['nome']); $_GET $_POST $_COOKIE $_SESSION Friday, January 29, 2010
    • Procure evitar! • Código spaghetti • Misturar lógica de negócio e código HTML • Consumir Super Globals sem filtrar • $_POST/GET... não devem ser confiadas, sempre filtre seu conteudo • “Filtre entradas, Escape saídas” Friday, January 29, 2010
    • O Mercado http://www.flickr.com/photos/manuelpichler/ como ganhar dinheiro Friday, January 29, 2010
    • Iniciante $ $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante $ $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante $ Controle de Versão $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ Controle de Versão $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ Controle de Versão Profiling $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ Controle de Versão Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ OO Controle de Versão Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ OO Controle de Versão Testes Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
    • Iniciante Debugging $ OO Controle de Versão Design Patterns Testes Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
    • Os dois lados • “Sobrinhos” • Desvalorização do mercado • Média de salários menor • Estagnado. • O Desenvolvedor • Procuram valorizar o mercado • Salários melhores • Faltam profissionais Friday, January 29, 2010
    • Certificação Zend Certified Engineer - PHP 5 • Pode ser um critério de desempate • Polêmica: decoreba X qualidade do dev. • Não é fácil, possui muitos detalhes • Prova com peguinhas • Estudar casos extraordinários e parâmetros incomuns • De uma forma geral: Vale a pena! Friday, January 29, 2010
    • Construa o seu nome • Escreva! (blog, artigos, revistas) • Participe! (GU, Eventos) • Contribua! (Frameworks, PHP, OSS ...) Friday, January 29, 2010
    • Ecossistema http://www.flickr.com/photos/hlegius/ Ferramentas Friday, January 29, 2010
    • O servidor Escolha seu sabor LAMP LAPP WAMP WIPP WIMP Friday, January 29, 2010
    • Misture e Combine... • Multiplataforma • *Nix, BSD, Windows, ... • Banco de Dados • Oracle, SQL Server, MySQL, PostGresSQL, ... • Servidores • Apache, IIS, LightHTTP... Friday, January 29, 2010
    • Frameworks • Abstraem camadas inferiores • Evitam que você se repita (DRY) • Aumentam a produtividade da equipe • Use moderadamente e adequadamente Friday, January 29, 2010
    • Não deixe de estudar • XDebug • debugging / profiling • Controle de versão (Subversion, git...) • phpDoc - Documentação intra-código • Design Patterns - como montar seu código • PHPUnit - Testes unitários Friday, January 29, 2010
    • Comunidade http://www.flickr.com/photos/skoop/ sempre pronta para ajudar Friday, January 29, 2010
    • Movido à Comunidade • Core Developers • Escutam a comunidade e desenvolvem o PHP • Líderes da Comunidade • Promovem o PHP em seu ambiente • Contribuidores • Constróem todo resto (Frameworks, ferramentas..) • Desenvolvedores Friday, January 29, 2010
    • Os Canais • Grupos de Usuários (GU) • Presentes em 20 dos 26 estados brasileiros • Freenode • #phpc (en), #php-avancado, #php-br, #phpsp • Listas de discussão, twitter ... Friday, January 29, 2010
    • Quero aprender! • Procure o GU mais perto de você: www.php.org.br • Em São Paulo: www.phpsp.org.br • Site do PHP: www.php.net • Google: PHP • Comece! Escolha um projeto pequeno e aproveite seu tempo livre Fique ligado na programação do Campus Party/PHPSP Friday, January 29, 2010
    • dúvidas? Friday, January 29, 2010
    • Twitter: @rdohms Obrigado! Rafael Dohms www.rafaeldohms.com.br rafael@rafaeldohms.com.br Friday, January 29, 2010