Despertando para o PHP

Rafael Dohms
Rafael DohmsLead Backend Engineer at Usabilla
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
1 of 67

Recommended

Trilhando o caminho PHP [2.0] by
Trilhando o caminho PHP [2.0]Trilhando o caminho PHP [2.0]
Trilhando o caminho PHP [2.0]Rafael Dohms
1.3K views74 slides
Trilhando o Caminho PHP - PHPConf2008 by
Trilhando o Caminho PHP - PHPConf2008Trilhando o Caminho PHP - PHPConf2008
Trilhando o Caminho PHP - PHPConf2008Rafael Dohms
1.2K views24 slides
PHP e AJAX: do Request ao Framework by
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
1.7K views30 slides
PHPSP TestFest 2009 by
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
1.1K views23 slides
Mini curso de django by
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
1.6K views46 slides
POG nunca mais - SOLISC by
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISCPaulino Michelazzo
2.2K views43 slides

More Related Content

What's hot

Desenvolvimento web com python e django by
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
2.6K views80 slides
Mini Curso de PHP by
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHPRodrigo Bueno Santa Maria, BS, MBA
2.7K views159 slides
Tirando Certificação PHP by
Tirando Certificação PHPTirando Certificação PHP
Tirando Certificação PHPFernando Chucre
4.6K views12 slides
O Spring está morto! Viva o Spring! by
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
2.2K views39 slides
Modern PHP by
Modern PHPModern PHP
Modern PHPAri Stopassola Junior
1.4K views100 slides
Curso javascript básico by
Curso javascript básicoCurso javascript básico
Curso javascript básicoVinicius Dacal Lopes
1.8K views30 slides

What's hot(20)

Desenvolvimento web com python e django by Igor Sobreira
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
Igor Sobreira2.6K views
PHP 5 de Forma Correta e Segura by Kleber Silva
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
Kleber Silva1.6K views
Segurança em Aplicações Web com PHP by Gedvan Dias
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
Gedvan Dias5.3K views
Curso Linguagem de Programação I - PHP Básico by Norton Guimarães
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ães4.9K views
Curso de php do básico ao avançado by Thiago Carlos
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 Carlos582 views
Tutorial Django + Python by Mateus Padua
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
Mateus Padua6.6K views
Serversidephp pptx2-120418140114-phpapp01 by joaocarlobarros
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros433 views
Comandos gerais do PHP by Paulo Dayvson
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
Paulo Dayvson36.9K views
Seu framework é melhor pra quê? by Jaime Neto
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
Jaime Neto248 views

Similar to Despertando para o PHP

Programação Concorrente - Curso Completo by
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
1.2K views116 slides
Ao infinito e além com PHP memcached e Gearman by
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 GearmanElton Minetto
4K views55 slides
PHP, Gearman e Memcache by
PHP, Gearman e MemcachePHP, Gearman e Memcache
PHP, Gearman e MemcacheAndre Golvea
410 views55 slides
Apresentação do grupo PHPMS by
Apresentação do grupo PHPMSApresentação do grupo PHPMS
Apresentação do grupo PHPMSBruno Fernandes "PorKaria"
263 views19 slides
Muito prazer, eu sou PHP by
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHPJohnathan Cardoso
591 views68 slides
Muito prazer, eu sou PHP by
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHPLuís Cobucci
1.5K views68 slides

Similar to Despertando para o PHP(20)

Programação Concorrente - Curso Completo by thomasdacosta
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
thomasdacosta1.2K views
Ao infinito e além com PHP memcached e Gearman by Elton Minetto
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 Minetto4K views
PHP, Gearman e Memcache by Andre Golvea
PHP, Gearman e MemcachePHP, Gearman e Memcache
PHP, Gearman e Memcache
Andre Golvea410 views
Muito prazer, eu sou PHP by Luís Cobucci
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Luís Cobucci1.5K views
Aula 02 - Introdução ao PHP by Daniel Brandão
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão3.5K views
PHP para aplicações Web de grande porte by Felipe Ribeiro
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
Felipe Ribeiro4.1K views
Curso PHP - 1a. Aula (2013.2) by Jonata Weber
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
Jonata Weber893 views
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP by Carlos Santos
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
Carlos Santos1.6K views
Algoritmos e Técnicas de Programação - Curso Completo by thomasdacosta
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
thomasdacosta5.6K views
Curso de PHP Básico ao Avançado by Luiz Junior
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
Luiz Junior21.1K views
SIMCIT 2013 - Mini-curso PHP by Jonata Weber
SIMCIT 2013 - Mini-curso PHPSIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHP
Jonata Weber611 views
PHP, mas o que é isso ? by phpal
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
phpal505 views

More from Rafael Dohms

Application Metrics - IPC2023 by
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023Rafael Dohms
7 views87 slides
How'd we get here? A guide to Architectural Decision Records by
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 RecordsRafael Dohms
306 views42 slides
Architectural Decision Records - PHPConfBR by
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBRRafael Dohms
299 views42 slides
Application Metrics (with Prometheus examples) by
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)Rafael Dohms
998 views89 slides
Application metrics - Confoo 2019 by
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019Rafael Dohms
747 views90 slides
Writing code you won’t hate tomorrow - PHPCE18 by
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18Rafael Dohms
1.2K views86 slides

More from Rafael Dohms(20)

Application Metrics - IPC2023 by Rafael Dohms
Application Metrics - IPC2023Application Metrics - IPC2023
Application Metrics - IPC2023
Rafael Dohms7 views
How'd we get here? A guide to Architectural Decision Records by Rafael Dohms
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 Dohms306 views
Architectural Decision Records - PHPConfBR by Rafael Dohms
Architectural Decision Records - PHPConfBRArchitectural Decision Records - PHPConfBR
Architectural Decision Records - PHPConfBR
Rafael Dohms299 views
Application Metrics (with Prometheus examples) by Rafael Dohms
Application Metrics (with Prometheus examples)Application Metrics (with Prometheus examples)
Application Metrics (with Prometheus examples)
Rafael Dohms998 views
Application metrics - Confoo 2019 by Rafael Dohms
Application metrics - Confoo 2019Application metrics - Confoo 2019
Application metrics - Confoo 2019
Rafael Dohms747 views
Writing code you won’t hate tomorrow - PHPCE18 by Rafael Dohms
Writing code you won’t hate tomorrow - PHPCE18Writing code you won’t hate tomorrow - PHPCE18
Writing code you won’t hate tomorrow - PHPCE18
Rafael Dohms1.2K views
Application Metrics (with Prometheus examples) #PHPDD18 by Rafael Dohms
Application Metrics (with Prometheus examples) #PHPDD18Application Metrics (with Prometheus examples) #PHPDD18
Application Metrics (with Prometheus examples) #PHPDD18
Rafael Dohms757 views
Application metrics with Prometheus - DPC18 by Rafael Dohms
Application metrics with Prometheus - DPC18Application metrics with Prometheus - DPC18
Application metrics with Prometheus - DPC18
Rafael Dohms1.3K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonf by 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
Rafael Dohms3.9K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo... by 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...
Rafael Dohms1.4K views
Composer The Right Way - 010PHP by Rafael Dohms
Composer The Right Way - 010PHPComposer The Right Way - 010PHP
Composer The Right Way - 010PHP
Rafael Dohms3.5K views
Writing Code That Lasts - #Magento2Seminar, Utrecht by Rafael Dohms
Writing Code That Lasts - #Magento2Seminar, UtrechtWriting Code That Lasts - #Magento2Seminar, Utrecht
Writing Code That Lasts - #Magento2Seminar, Utrecht
Rafael Dohms976 views
Composer the Right Way - PHPSRB16 by Rafael Dohms
Composer the Right Way - PHPSRB16Composer the Right Way - PHPSRB16
Composer the Right Way - PHPSRB16
Rafael Dohms3.9K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16 by 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
Rafael Dohms1.4K views
Composer the Right Way - MM16NL by Rafael Dohms
Composer the Right Way - MM16NLComposer the Right Way - MM16NL
Composer the Right Way - MM16NL
Rafael Dohms1.1K views
Composer The Right Way - PHPUGMRN by Rafael Dohms
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
Rafael Dohms1.4K views
Composer the Right Way - PHPBNL16 by Rafael Dohms
Composer the Right Way - PHPBNL16Composer the Right Way - PHPBNL16
Composer the Right Way - PHPBNL16
Rafael Dohms2.6K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by 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.
Rafael Dohms2.5K views
A Journey into your Lizard Brain - PHP Conference Brasil 2015 by Rafael Dohms
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 Dohms2.2K views
“Writing code that lasts” … or writing code you won’t hate tomorrow. by 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.
Rafael Dohms967 views

Recently uploaded

DevFest2023-Pragmatismo da Internet das Coisas by
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das CoisasWalter Coan
23 views40 slides
TechConnection 2023 Floripa Azure Container Apps by
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsWalter Coan
5 views14 slides
certificado excel.pdf by
certificado excel.pdfcertificado excel.pdf
certificado excel.pdfjuniorcarvalho136
5 views1 slide
Competências para extrair inovação na tecnologia! by
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!Annelise Gripp
15 views11 slides
Conheça agora o UiPath Autopilot™ para o Studio.pdf by
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdfBrunaCavalcanti29
14 views8 slides
Skills e Squads, como trabalhar? by
Skills e Squads, como trabalhar?Skills e Squads, como trabalhar?
Skills e Squads, como trabalhar?Annelise Gripp
31 views13 slides

Recently uploaded(8)

DevFest2023-Pragmatismo da Internet das Coisas by Walter Coan
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das Coisas
Walter Coan23 views
TechConnection 2023 Floripa Azure Container Apps by Walter Coan
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container Apps
Walter Coan5 views
Competências para extrair inovação na tecnologia! by Annelise Gripp
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!
Annelise Gripp15 views
Conheça agora o UiPath Autopilot™ para o Studio.pdf by BrunaCavalcanti29
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdf
Skills e Squads, como trabalhar? by Annelise Gripp
Skills e Squads, como trabalhar?Skills e Squads, como trabalhar?
Skills e Squads, como trabalhar?
Annelise Gripp31 views
MAPA - CONTABILIDADE EMPRESARIAL - 54/2023 by AcademiaDL
MAPA - CONTABILIDADE EMPRESARIAL - 54/2023MAPA - CONTABILIDADE EMPRESARIAL - 54/2023
MAPA - CONTABILIDADE EMPRESARIAL - 54/2023
AcademiaDL62 views
Shift left DevOps Experience by Walter Coan
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
Walter Coan5 views

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