SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
Igor Sobreira
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Tirando Certificação PHP
Tirando Certificação PHPTirando Certificação PHP
Tirando Certificação PHP
Fernando Chucre
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
Josenaldo de Oliveira Matos Filho
 
Modern PHP
Modern PHPModern PHP
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
Vinicius Dacal Lopes
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
Kleber Silva
 
Filtro de SPAM
Filtro de SPAMFiltro de SPAM
Filtro de SPAM
Cauan Cabral
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
Ari Stopassola Junior
 
Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
Gedvan Dias
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
Norton Guimarães
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
Thiago Carlos
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
Mateus Padua
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
Josenaldo de Oliveira Matos Filho
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
Paulo Dayvson
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
Jaime Neto
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
Alexandre Andrade
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
Rodrigo Gomes da Silva
 

Mais procurados (20)

Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Tirando Certificação PHP
Tirando Certificação PHPTirando Certificação PHP
Tirando Certificação PHP
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
 
Filtro de SPAM
Filtro de SPAMFiltro de SPAM
Filtro de SPAM
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
 

Semelhante a Despertando para o PHP

Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
thomasdacosta
 
Ao infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e GearmanAo infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e Gearman
Elton Minetto
 
PHP, Gearman e Memcache
PHP, Gearman e MemcachePHP, Gearman e Memcache
PHP, Gearman e Memcache
Andre Golvea
 
Apresentação do grupo PHPMS
Apresentação do grupo PHPMSApresentação do grupo PHPMS
Apresentação do grupo PHPMS
Bruno Fernandes "PorKaria"
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Johnathan Cardoso
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Luís Cobucci
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
George Mendonça
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
Agrupamento de Escolas da Batalha
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
GameFlixBR
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
Freedom DayMS
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
Felipe Ribeiro
 
PHP Presente e Futuro
PHP Presente e FuturoPHP Presente e Futuro
PHP Presente e Futuro
Felipe Vargas Rigo
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
Jonata Weber
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
Carlos Santos
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
thomasdacosta
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
Fabio Janiszevski
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
Luiz Junior
 
SIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHPSIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHP
Jonata Weber
 
PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
phpal
 

Semelhante a Despertando para o PHP (20)

Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Ao infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e GearmanAo infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e Gearman
 
PHP, Gearman e Memcache
PHP, Gearman e MemcachePHP, Gearman e Memcache
PHP, Gearman e Memcache
 
Apresentação do grupo PHPMS
Apresentação do grupo PHPMSApresentação do grupo PHPMS
Apresentação do grupo PHPMS
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
PHP Presente e Futuro
PHP Presente e FuturoPHP Presente e Futuro
PHP Presente e Futuro
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
SIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHPSIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHP
 
PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
 

Mais de Rafael Dohms

The Individual Contributor Path - DPC2024
The Individual Contributor Path - DPC2024The Individual Contributor Path - DPC2024
The Individual Contributor Path - DPC2024
Rafael Dohms
 
Application Metrics - IPC2023
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023
Rafael Dohms
 
How'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision Records
Rafael Dohms
 
Architectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBR
Rafael Dohms
 
Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)
Rafael Dohms
 
Application metrics - Confoo 2019
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019
Rafael Dohms
 
Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18
Rafael Dohms
 
Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18
Rafael Dohms
 
Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18
Rafael Dohms
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
Rafael Dohms
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
Rafael Dohms
 
Composer The Right Way - 010PHP
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHP
Rafael Dohms
 
Writing Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, UtrechtWriting Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, Utrecht
Rafael Dohms
 
Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16
Rafael Dohms
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
Rafael Dohms
 
Composer the Right Way - MM16NL
Composer the Right Way - MM16NLComposer the Right Way - MM16NL
Composer the Right Way - MM16NL
Rafael Dohms
 
Composer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
Rafael Dohms
 
Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16
Rafael Dohms
 
“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms
 
A Journey into your Lizard Brain - PHP Conference Brasil 2015
A Journey into your Lizard Brain - PHP Conference Brasil 2015A Journey into your Lizard Brain - PHP Conference Brasil 2015
A Journey into your Lizard Brain - PHP Conference Brasil 2015
Rafael Dohms
 

Mais de Rafael Dohms (20)

The Individual Contributor Path - DPC2024
The Individual Contributor Path - DPC2024The Individual Contributor Path - DPC2024
The Individual Contributor Path - DPC2024
 
Application Metrics - IPC2023
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023
 
How'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision RecordsHow'd we get here? A guide to Architectural Decision Records
How'd we get here? A guide to Architectural Decision Records
 
Architectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBR
 
Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)
 
Application metrics - Confoo 2019
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019
 
Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18
 
Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18
 
Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...
 
Composer The Right Way - 010PHP
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHP
 
Writing Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, UtrechtWriting Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, Utrecht
 
Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16
 
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16
 
Composer the Right Way - MM16NL
Composer the Right Way - MM16NLComposer the Right Way - MM16NL
Composer the Right Way - MM16NL
 
Composer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
 
Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16
 
“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.“Writing code that lasts” … or writing code you won’t hate tomorrow.
“Writing code that lasts” … or writing code you won’t hate tomorrow.
 
A Journey into your Lizard Brain - PHP Conference Brasil 2015
A Journey into your Lizard Brain - PHP Conference Brasil 2015A Journey into your Lizard Brain - PHP Conference Brasil 2015
A Journey into your Lizard Brain - PHP Conference Brasil 2015
 

Despertando para o PHP

  • 1. Despertando para o PHP Rafael Dohms Friday, January 29, 2010
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Arquitetura de um acesso Friday, January 29, 2010
  • 6. Arquitetura de um acesso Friday, January 29, 2010
  • 7. Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
  • 8. Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
  • 9. Arquitetura de um acesso http://www.php.net Friday, January 29, 2010
  • 10. Arquitetura de um acesso http://www.php.net Servidor HTTP Friday, January 29, 2010
  • 11. Arquitetura de um acesso http://www.php.net Servidor HTTP HTML Friday, January 29, 2010
  • 12. Arquitetura C: de um acesso HTML http://www.php.net Servidor HTTP HTML Friday, January 29, 2010
  • 13. Quem usa PHP? Friday, January 29, 2010
  • 14. A escolha Por que PHP? Friday, January 29, 2010
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. Rodando PHP • Web • http://seusite.com/index.php • Linha de comando • php arquivo.php Friday, January 29, 2010
  • 20. Show me the code! Friday, January 29, 2010
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. SuperGlobals e Formulários <form action"" method="POST"> <input id="nome" name="nome"> </form> <?php $nome = filterInput($_POST['nome']); Friday, January 29, 2010
  • 42. 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
  • 43. 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
  • 44. O Mercado http://www.flickr.com/photos/manuelpichler/ como ganhar dinheiro Friday, January 29, 2010
  • 45. Iniciante $ $$$$$ Jedi Master Friday, January 29, 2010
  • 46. Iniciante $ $$$$$ Jedi Master Friday, January 29, 2010
  • 47. Iniciante $ Controle de Versão $$$$$ Jedi Master Friday, January 29, 2010
  • 48. Iniciante Debugging $ Controle de Versão $$$$$ Jedi Master Friday, January 29, 2010
  • 49. Iniciante Debugging $ Controle de Versão Profiling $$$$$ Jedi Master Friday, January 29, 2010
  • 50. Iniciante Debugging $ Controle de Versão Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
  • 51. Iniciante Debugging $ OO Controle de Versão Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
  • 52. Iniciante Debugging $ OO Controle de Versão Testes Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
  • 53. Iniciante Debugging $ OO Controle de Versão Design Patterns Testes Frameworks Profiling $$$$$ Jedi Master Friday, January 29, 2010
  • 54. 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
  • 55. 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
  • 56. Construa o seu nome • Escreva! (blog, artigos, revistas) • Participe! (GU, Eventos) • Contribua! (Frameworks, PHP, OSS ...) Friday, January 29, 2010
  • 57. Ecossistema http://www.flickr.com/photos/hlegius/ Ferramentas Friday, January 29, 2010
  • 58. O servidor Escolha seu sabor LAMP LAPP WAMP WIPP WIMP Friday, January 29, 2010
  • 59. Misture e Combine... • Multiplataforma • *Nix, BSD, Windows, ... • Banco de Dados • Oracle, SQL Server, MySQL, PostGresSQL, ... • Servidores • Apache, IIS, LightHTTP... Friday, January 29, 2010
  • 60. Frameworks • Abstraem camadas inferiores • Evitam que você se repita (DRY) • Aumentam a produtividade da equipe • Use moderadamente e adequadamente Friday, January 29, 2010
  • 61. 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
  • 62. Comunidade http://www.flickr.com/photos/skoop/ sempre pronta para ajudar Friday, January 29, 2010
  • 63. 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
  • 64. 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
  • 65. 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
  • 67. Twitter: @rdohms Obrigado! Rafael Dohms www.rafaeldohms.com.br rafael@rafaeldohms.com.br Friday, January 29, 2010