Fernando Geraldo Mantoan




PHP,
Mercado e 
Certificações


                            
PHP




     
PHP



Rasmus Lerdorf ­ 1994




                 
PHP



Rasmus Lerdorf ­ 1994

     Andi Gutmans e 
    Zeev Suraski ­ 1998

                    
PHP



Rasmus Lerdorf ­ 1994

     Andi Gutmans e 
    Zeev Suraski ­ 1998
              Zend Engine (PHP4)
 
             Zend Engine 2 (PHP5+)
                    
Evolução




        
PHP 4

    <?php
    class pessoa {
       var $nome;
       function pessoa() {
           $this­>nome = “fernando”;
       }
    }
    $fernando = new pessoa();
    $joao = new pessoa();
    $joao­>nome = “joao”;
    ?>

                                    
PHP 4
    ●   Zend Engine;
    ●   Melhor performance e modularidade;
    ●   Sessões;
    ●   Suporte a diversos servidores web;
    ●   Abstração da API.




                               
PHP 5
<?php
class pessoa {}
class colaborador extends pessoa {
   private $nome;
   public function __construct() {
       $this­>nome = “fernando”;
   }
   public function __get($propriedade) {
       return $this­>$propriedade;
   }
}
$fernando = new colaborador();
echo $fernando­>nome;
?>
                                  
PHP 5
    ●   Zend Engine II e suporte melhorado à 
        orientação a objetos (__toString, __construct, 
        modificadores de acesso, etc...);
    ●   Suporte a XML re­escrito;
    ●   Extensão nativa para SOAP;
    ●   mysqli (prepared statements e orientação a 
        objetos);
    ●   Streams melhoradas.
                                
PHP 5.3


    <?php
    //lambdas e closures
    $olaMundo = function($nome) {
        echo “ola mundo: {$nome}”;
    };
    $olaMundo('fernando');



                            
PHP 5.3

    <?php
    //namespaces.php
    namespace myname
    class MinhaClasse {}
    ?>
    <?php
    //uso.php
    require_once 'namespaces.php';
    $classe = new mynameMinhaClasse;
    ?>
                          
PHP 5.3
    ●   Late Static Binding;
    ●   NOWDOC;
    ●   __callStatic();
    ●   Garbage collection para referências cíclicas;
    ●   Melhoria ao suporte ao SO Windows;
    ●   PHAR, intl, Fileinfo, sqlite3;
    ●   140 Bugfixes e melhorias a extensões;
    ●   GOTO.
                                   
PHP 6


    ●   Unicode;
    ●   Internacionalização.




                                
Ferramentas




          
     
     
     
     
Frameworks




         
     
     
     
     
Mercado




        
Segundo a Tiobe...




                      
Empresas de fora




            
     
     
     
     
Empresas de Foz




            
     
     
Mercado

    A demanda 
      existe...




                   
Mercado

    A demanda 
      existe...

                  Faltam profissionais 
                     qualificados...


                      
Mercado

    A demanda 
      existe...

                  Faltam profissionais 
                     qualificados...
 Todo mundo pode aprender 
PHP, mas código de qualidade 
 
   é difícil de se encontrar!
                      
Perfis Profissionais




              
Perfis

Os perfis comuns de profissionais são...




                    
Perfis

Os perfis comuns de profissionais são...

     Sobrinhos e 
     avançados




                     
Perfis

Os perfis comuns de profissionais são...

   Sobrinhos e 
    avançados
  Sobrinhos são 
baratos mas pecam 
  no código e na 
   estabilidade
                    
Perfis

Os perfis comuns de profissionais são...

     Sobrinhos e 
     avançados     Desenvolvedores 
                    avançados são 
  Sobrinhos são 
                     caros, porém 
baratos mas pecam 
                     garantem seu 
  no código e na 
                       trabalho!
   estabilidade
                     
Dicas




       
Abstração com o Banco de Dados
    ●   PDO é uma grande aliada pois:
        ●   Possui prepared statements;
        ●   É nativa do PHP;
        ●   Camada de abstração de bancos distintos 
            (PostgreSQL, MySQL, SQLite, etc...);
    ●   Doctrine é um ORM muito robusto:
        ●   Possui a DQL (Doctrine Query Language);
        ●   Também abstrai bancos de dados;
        ●   Consultas sem escrever SQLs na mão.
                                   
Evite o Spaghetti




             
Evite o Spaghetti
    <html>
         <head></head>
         <body>
             <?php 
                require_once 'model/minhaclasse.php';
                $classe = new minhaclasse();
                $dados = $classe­>consultar();
                echo '<ul>';
                for ($i = 0; $i < sizeof($dados); $i++) {
                     echo '<li>' . $dados[$i]['nome'] . $dados[$i]['telefone'] . 
    '</li>';
                }
                echo '</ul>';
             ?>
 
         </body>                            
    </html>
Evite o Spaghetti


    <?php #Controller
       require_once 'model/minhaclasse.php';
       class ClasseController {
           public function listar() {
              $model = new minhaclasse();
              $this­>view­>dados = $model­>consultar();
              $this­>view­>display();
           }
       }
    ?>

                                     
Evite o Spaghetti

    <html>
        <head></head>
        <body>
           <ul>
               {foreach from=$dados item=dado}
                    <li>{$dado.nome} {$dado.telefone}</li>
               {foreachelse}
                    <li>Nenhum registro encontrado!</li>
               {/foreach}
           </ul>
        </body>
    </html>
                                        
Não feche a cabeça




             
Não feche a cabeça

    Refatore código




                       
Não feche a cabeça

    Refatore código

          Sua arquitetura não é perfeita




                       
Não feche a cabeça

    Refatore código

          Sua arquitetura não é perfeita

Estude metodologias 
 como: TDD e BDD

                       
Não feche a cabeça

    Refatore código

          Sua arquitetura não é perfeita

Estude metodologias 
 como: TDD e BDD
              Webstandards são seus 
 
                melhores amigos
                       
ATENÇÃO!




     
ATENÇÃO!
Além de práticas em PHP 
  você também pode...




                  
ATENÇÃO!
Além de práticas em PHP 
  você também pode...
                     Treinar lógica de 
                      programação;




                  
ATENÇÃO!
Além de práticas em PHP 
  você também pode...
                          Treinar lógica de 
                           programação;
     Estudar metodologias 
    ágeis e design patterns;

                       
ATENÇÃO!
Além de práticas em PHP 
  você também pode...
                          Treinar lógica de 
                           programação;
     Estudar metodologias 
    ágeis e design patterns;
                   Praticar exercícios 
                       físicos! :­)
Certificações




           
Certificações

Zend PHP5 Certified Engineer




                 
Certificações

Zend PHP5 Certified Engineer

       Zend Framework Certified 
               Engineer



                 
Certificações

    ●   Segundo a Zend as principais vantagens são:
        ●   Reconhecimento global das habilidades com as 
            ferramentas;
        ●   Vantagem ao concorrer a novos empregos e ao 
            sofrer reajustes de salário (aumento);
        ●   Páginas Amarelas da Zend.
    ●   Além da satisfação e motivação pessoal.


                                  
Certificações

    ●   Talvez a principal desvantagem seja o fato de 
        profissionais ruins conseguirem a certificação, 
        utilizando­se da decoreba do conteúdo cobrado 
        na prova;
    ●   Por outro lado, quando o candidato estuda de 
        verdade ele adquire conhecimentos valiosos 
        que serão utilizados no dia­a­dia de trabalho.



                               
Zend PHP5 Certification




                
ZPHP5CE
    ●   Valor Pago: U$165,00 (inclui 10 simulados);
    ●   Idioma: Inglês;
    ●   Material de estudo: Zend PHP5 Certification Study Guide, 
        Manual do PHP, PHP Programação Poderosa;
    ●   Prova:
        ●   70 Perguntas em 90 minutos;
        ●   Questões de múltipla escolha com uma ou várias alternativas e 
            questões abertas;
        ●   Conteúdo:
            –   Strings, Arrays, Streams, Segurança, Design Patterns, Banco de 
                Dados, XML, Diferenças entre PHP4 e PHP5 etc.
                                              
Conclusões




         
     
Obrigado!

     fernandouhu@gmail.com 
    http://fernandomantoan.com 



                  
Referências
    ●   http://php.net
    ●   http://zend.com 
    ●   PHP Programando com Orientação a Objetos – 
        Pablo Dall'Oglio;
    ●   Palestras do Rafael Dohms: 
        http://www.slideshare.net/rdohms



                               
●   http://edersonmelo.wordpress.com/2009/06/29/elephpant­o­logo­do­php/
    ●   http://www.flickr.com/photos/skoop/2547900338/
    ●   http://www.flickr.com/photos/40211230@N00/262254743/
    ●   http://www.flickr.com/photos/atsf90east/122708879/
    ●   http://www.flickr.com/photos/34904794@N07/3241360420/
    ●   http://www.flickr.com/photos/sbrotschul/2789977090/
    ●   http://www.flickr.com/photos/funadium/913303959/
    ●   http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
    ●   http://www.flickr.com/photos/benheine/3994079347/
    ●   http://www.flickr.com/photos/claudio_ar/2218550947/
    ●   http://www.flickr.com/photos/acam/119761061/
    ●   http://www.flickr.com/photos/bonvoyageindia/2968208923/
    ●   http://www.flickr.com/photos/jshj/824608884/
    ●   http://www.flickr.com/photos/39443726@N07/4039244926/
    ●   http://www.flickr.com/photos/sea­turtle/3049443478/
    ●   http://www.flickr.com/photos/goodimages/224036413/
    ●   http://www.flickr.com/photos/benandliz/261729787/
    ●   http://www.flickr.com/photos/luigistrano/3604583930/
    ●   http://www.flickr.com/photos/doberagi/1404539812/
    ●   http://www.flickr.com/photos/7533960@N02/1522924687/
                                                
    ●   http://www.flickr.com/photos/lhirlimann/3069695539/

PHP, Mercado e Certificações

  • 1.
  • 2.
  • 3.
  • 4.
    PHP Rasmus Lerdorf ­ 1994 Andi Gutmans e  Zeev Suraski ­ 1998    
  • 5.
    PHP Rasmus Lerdorf ­ 1994 Andi Gutmans e  Zeev Suraski ­ 1998 Zend Engine (PHP4)   Zend Engine 2 (PHP5+)  
  • 6.
  • 7.
    PHP 4 <?php class pessoa { var $nome; function pessoa() { $this­>nome = “fernando”; } } $fernando = new pessoa(); $joao = new pessoa(); $joao­>nome = “joao”; ?>    
  • 8.
    PHP 4 ● Zend Engine; ● Melhor performance e modularidade; ● Sessões; ● Suporte a diversos servidores web; ● Abstração da API.    
  • 9.
    PHP 5 <?php class pessoa {} class colaborador extends pessoa { private $nome; public function __construct() { $this­>nome = “fernando”; } public function __get($propriedade) { return $this­>$propriedade; } } $fernando = new colaborador(); echo $fernando­>nome; ?>    
  • 10.
    PHP 5 ● Zend Engine II e suporte melhorado à  orientação a objetos (__toString, __construct,  modificadores de acesso, etc...); ● Suporte a XML re­escrito; ● Extensão nativa para SOAP; ● mysqli (prepared statements e orientação a  objetos); ● Streams melhoradas.    
  • 11.
    PHP 5.3 <?php //lambdas e closures $olaMundo = function($nome) { echo “ola mundo: {$nome}”; }; $olaMundo('fernando');    
  • 12.
    PHP 5.3 <?php //namespaces.php namespace myname class MinhaClasse {} ?> <?php //uso.php require_once 'namespaces.php'; $classe = new mynameMinhaClasse; ?>    
  • 13.
    PHP 5.3 ● Late Static Binding; ● NOWDOC; ● __callStatic(); ● Garbage collection para referências cíclicas; ● Melhoria ao suporte ao SO Windows; ● PHAR, intl, Fileinfo, sqlite3; ● 140 Bugfixes e melhorias a extensões; ● GOTO.    
  • 14.
    PHP 6 ● Unicode; ● Internacionalização.    
  • 15.
  • 16.
       
  • 17.
       
  • 18.
       
  • 19.
       
  • 20.
  • 21.
       
  • 22.
       
  • 23.
       
  • 24.
       
  • 25.
  • 26.
  • 27.
  • 28.
       
  • 29.
       
  • 30.
       
  • 31.
       
  • 32.
  • 33.
       
  • 34.
       
  • 35.
    Mercado A demanda  existe...    
  • 36.
    Mercado A demanda  existe... Faltam profissionais  qualificados...    
  • 37.
    Mercado A demanda  existe... Faltam profissionais  qualificados... Todo mundo pode aprender  PHP, mas código de qualidade    é difícil de se encontrar!  
  • 38.
  • 39.
  • 40.
  • 41.
    Perfis Os perfis comuns de profissionais são... Sobrinhos e  avançados Sobrinhos são  baratos mas pecam  no código e na  estabilidade    
  • 42.
    Perfis Os perfis comuns de profissionais são... Sobrinhos e  avançados Desenvolvedores  avançados são  Sobrinhos são  caros, porém  baratos mas pecam  garantem seu  no código e na  trabalho! estabilidade    
  • 43.
  • 44.
    Abstração com o Banco de Dados ● PDO é uma grande aliada pois: ● Possui prepared statements; ● É nativa do PHP; ● Camada de abstração de bancos distintos  (PostgreSQL, MySQL, SQLite, etc...); ● Doctrine é um ORM muito robusto: ● Possui a DQL (Doctrine Query Language); ● Também abstrai bancos de dados; ● Consultas sem escrever SQLs na mão.    
  • 45.
  • 46.
    Evite o Spaghetti <html> <head></head> <body> <?php  require_once 'model/minhaclasse.php'; $classe = new minhaclasse(); $dados = $classe­>consultar(); echo '<ul>'; for ($i = 0; $i < sizeof($dados); $i++) { echo '<li>' . $dados[$i]['nome'] . $dados[$i]['telefone'] .  '</li>'; } echo '</ul>'; ?>   </body>   </html>
  • 47.
    Evite o Spaghetti <?php #Controller require_once 'model/minhaclasse.php'; class ClasseController { public function listar() { $model = new minhaclasse(); $this­>view­>dados = $model­>consultar(); $this­>view­>display(); } } ?>    
  • 48.
    Evite o Spaghetti <html> <head></head> <body> <ul> {foreach from=$dados item=dado} <li>{$dado.nome} {$dado.telefone}</li> {foreachelse} <li>Nenhum registro encontrado!</li> {/foreach} </ul> </body> </html>    
  • 49.
  • 50.
    Não feche a cabeça Refatore código    
  • 51.
    Não feche a cabeça Refatore código Sua arquitetura não é perfeita    
  • 52.
    Não feche a cabeça Refatore código Sua arquitetura não é perfeita Estude metodologias  como: TDD e BDD    
  • 53.
    Não feche a cabeça Refatore código Sua arquitetura não é perfeita Estude metodologias  como: TDD e BDD Webstandards são seus    melhores amigos  
  • 54.
  • 55.
  • 56.
  • 57.
    ATENÇÃO! Além de práticas em PHP  você também pode... Treinar lógica de  programação; Estudar metodologias  ágeis e design patterns;    
  • 58.
    ATENÇÃO! Além de práticas em PHP  você também pode... Treinar lógica de  programação; Estudar metodologias  ágeis e design patterns; Praticar exercícios     físicos! :­)
  • 59.
  • 60.
  • 61.
    Certificações Zend PHP5 Certified Engineer Zend Framework Certified  Engineer    
  • 62.
    Certificações ● Segundo a Zend as principais vantagens são: ● Reconhecimento global das habilidades com as  ferramentas; ● Vantagem ao concorrer a novos empregos e ao  sofrer reajustes de salário (aumento); ● Páginas Amarelas da Zend. ● Além da satisfação e motivação pessoal.    
  • 63.
    Certificações ● Talvez a principal desvantagem seja o fato de  profissionais ruins conseguirem a certificação,  utilizando­se da decoreba do conteúdo cobrado  na prova; ● Por outro lado, quando o candidato estuda de  verdade ele adquire conhecimentos valiosos  que serão utilizados no dia­a­dia de trabalho.    
  • 64.
  • 65.
    ZPHP5CE ● Valor Pago: U$165,00 (inclui 10 simulados); ● Idioma: Inglês; ● Material de estudo: Zend PHP5 Certification Study Guide,  Manual do PHP, PHP Programação Poderosa; ● Prova: ● 70 Perguntas em 90 minutos; ● Questões de múltipla escolha com uma ou várias alternativas e  questões abertas; ● Conteúdo: – Strings, Arrays, Streams, Segurança, Design Patterns, Banco de  Dados, XML, Diferenças entre PHP4 e PHP5 etc.    
  • 66.
  • 67.
       
  • 68.
    Obrigado! fernandouhu@gmail.com  http://fernandomantoan.com     
  • 69.
    Referências ● http://php.net ● http://zend.com  ● PHP Programando com Orientação a Objetos –  Pablo Dall'Oglio; ● Palestras do Rafael Dohms:  http://www.slideshare.net/rdohms    
  • 70.
    http://edersonmelo.wordpress.com/2009/06/29/elephpant­o­logo­do­php/ ● http://www.flickr.com/photos/skoop/2547900338/ ● http://www.flickr.com/photos/40211230@N00/262254743/ ● http://www.flickr.com/photos/atsf90east/122708879/ ● http://www.flickr.com/photos/34904794@N07/3241360420/ ● http://www.flickr.com/photos/sbrotschul/2789977090/ ● http://www.flickr.com/photos/funadium/913303959/ ● http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ● http://www.flickr.com/photos/benheine/3994079347/ ● http://www.flickr.com/photos/claudio_ar/2218550947/ ● http://www.flickr.com/photos/acam/119761061/ ● http://www.flickr.com/photos/bonvoyageindia/2968208923/ ● http://www.flickr.com/photos/jshj/824608884/ ● http://www.flickr.com/photos/39443726@N07/4039244926/ ● http://www.flickr.com/photos/sea­turtle/3049443478/ ● http://www.flickr.com/photos/goodimages/224036413/ ● http://www.flickr.com/photos/benandliz/261729787/ ● http://www.flickr.com/photos/luigistrano/3604583930/ ● http://www.flickr.com/photos/doberagi/1404539812/ ● http://www.flickr.com/photos/7533960@N02/1522924687/     ● http://www.flickr.com/photos/lhirlimann/3069695539/