SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
PHP NÃO é coisa de   Felipe Ribeiro
                     http://feliperibeiro.com
         moleque!    felipernb@gmail.com
Enquanto .NET e Java brigam, fazendo
                 Text
           muito barulho...
PHP se mantém como a tecnologia
       número 1 da Web.
Eles dizem que PHP “não aguenta o
                Text
tranco” e que “é coisa de moleque”
Mas por que PHP carrega essa má
             fama?
Por causa dos profissionais
     desqualificados...
dos mitos...
E pela falta de propaganda...
Esse cenário pode mudar, só depende
 da comunidade - que somos nós...
Qualificação de profissionais
•PHP é fácil de aprender e fácil de fazer porcaria

•Programadores Java precisam de uma formação mais
 sólida (orientação a objeto, padrões de projeto,
 eficiência de algoritmos, estruturas de dados, etc. e tal)

•BONS programadores PHP também precisam!!!
Marketing
•PHP não é da Sun nem da Microsoft...

•Mas é bancado por:

  •IBM

  •Oracle

  •Yahoo!

  •entre outros...
Marketing
•PHP está presente em mais de 25 milhões de sites

•Com tudo isso, pra que propaganda? A propaganda
 somos nós e tudo o que nós fazemos!
E que tal esclarecermos os mitos?
Mito #1 - Códigos PHP são sujos




                       http://flickr.com/photos/ripizzo/2310929170/
interface Printer {
   void print(Message message);
}
                                                          class SystemOutPrinter implements Printer {
class Message {
                                                              public void print(Message message) {
    private String message;
                                                                  System.out.println(message);
    public Message(String message) {
                                                              }
       this.message = message;
    }
                                                          }
    public void print(Printer printer) {
                                                          public class HelloWorld {
       printer.print(this);
    }
                                                             public static void main(String[] args) {
                                                                Message message = new Message("Hello,
    public String toString() {
                                                          World!");
       return message;
                                                                AbstractPrinterFactory factory =
    }
                                                          AbstractPrinterFactory.getFactory();
}


                                                                                              m
                                                                Printer printer = factory.getPrinter();



                                                                                             e
                                                                message.print(printer);
abstract class AbstractPrinterFactory {
                                                             }



                                                                      ld
    public static AbstractPrinterFactory getFactory() {


                                                                    r
                                                          }
       return new SystemOutPrinterFactory();


                                                                  o !
    }

    public abstract Printer getPrinter();
                                                                 W A acia
                                                               lo AV rocr
}

class SystemOutPrinterFactory extends

                                                            e l J u
                                                          H
AbstractPrinterFactory {

    public Printer getPrinter() {
                                                                   ab
    }
       return new SystemOutPrinter();
                                                                             e su
}
Quem determina a qualidade do código
        é o programador!




                      http://flickr.com/photos/zach_manchester/2302683790/
Mito #2 - PHP só serve para sistemas
             pequenos




                         http://flickr.com/photos/memotions/259656126
T!
                                                                                           E                 os

                                                                                 .N
                                                                                                       a   d
                                                                                                  ic
                                                                                            rí st
                                                                               é        c te oft


                                                               so
                                                                                      ra ros
                                                                                  e ca ic

                                                            Is
                                                                                ad os M
                                                                          b ilid ut
                                                                        ta rod
                                                                  a   es p
                                                              E
P.S.: O orkut foi reescrito em Java, mas esse shot é dos velhos tempos de .NET
PHP escala muito e de maneira muito
             simples!
OOP
Mito #3 - PHP não implementa OO “de
              verdade”
• PHP5 trouxe:


  • Níveis de visibilidade




                   OOP
  • Exceptions


  • Interfaces


  • Type hinting


  • SPL - Standard PHP Library
• Frameworks MVC


  • Zend Framework




                    OOP
  • Symfony


  • CakePHP


  • Code Igniter


  • Prado, etc...
Mito #4 - Existem poucas ferramentas
   para desenvolvimento em PHP




                       http://www.flickr.com/photos/mamabarns/747588843
Mito #5 - PHP não está pronto para
      aplicações “enterprise”
SOAP
XML




      http://flickr.com/photos/willpate/63814657/
REST




       http://flickr.com/photos/estherase/128983854/
http://flickr.com/photos/estherase/128983854/
E o que podemos esperar para o
            futuro?
PHP 5.3
•Namespaces

  Definição                          Uso
                         // diretamente
 namespace YahooNews;
                         $foo = new YahooNewsDir;
 class Dir {
     ...
                         // importando o namespace
 }
                         use YahooNews;
                         $foo = new NewsDir;

                         // renomeando a classe
                         use YahooNewsDir as YND;
                         $foo = new YND;
PHP 5.3
•Lambdas e closures


        $lambda = function () { 
            echo "Hello World!n";
        };
        $lambda();
PHP 5.3
•Lambdas e closures
      function getSomador($x) {
          return function ($y) use ($x) {
              return $x + $y;
          };
      }
      $somador = getSomador(10);

      echo $somador(5); //15
      echo $somador(32); //42
PHP 5.3
•PHAR - PHP Archive

•Garbage collection

•Late static binding

•Outros refatoramentos e correções de bug.
PHP 6 = PHP 5.3 + Unicode
http://www.flickr.com/photos/oberazzi/318947873
Felipe Ribeiro
 felipernb@gmail.com
http://feliperibeiro.com
 http://www.flickr.com/photos/jaredchapman/482538719
Referências
•PHP for Grown-ups
 Andrei Zmievski - http://gravitonic.com/talks

•Myths Defused
 Derick Rethans - http://talks.php.net/show/myths-
 ffm2008




                                       http://www.flickr.com/photos/nullalux/2261949240

Mais conteúdo relacionado

Mais procurados

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 

Mais procurados (14)

Compiladores 7
Compiladores 7Compiladores 7
Compiladores 7
 
Compiladores 5
Compiladores 5Compiladores 5
Compiladores 5
 
Compiladores 6
Compiladores 6Compiladores 6
Compiladores 6
 
Python
PythonPython
Python
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Apostila c++
Apostila c++Apostila c++
Apostila c++
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 

Destaque

Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
Luiz Ladeira
 

Destaque (16)

Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
Testes Automatizados No Cakephp
Testes Automatizados No CakephpTestes Automatizados No Cakephp
Testes Automatizados No Cakephp
 
Teoria do design da comunicação
Teoria do design da comunicaçãoTeoria do design da comunicação
Teoria do design da comunicação
 
Php FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHPPhp FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHP
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHP
 
Plugins
PluginsPlugins
Plugins
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Cake Php
Cake PhpCake Php
Cake Php
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Doctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPDoctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHP
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 

Semelhante a PHP não é coisa de moleque

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
Jorge Cardoso
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 

Semelhante a PHP não é coisa de moleque (20)

Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
Ud2
Ud2Ud2
Ud2
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Aula 02 - Introdução a ALGORITMOS.pptx
Aula 02 - Introdução a ALGORITMOS.pptxAula 02 - Introdução a ALGORITMOS.pptx
Aula 02 - Introdução a ALGORITMOS.pptx
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Apostila de-arduino
Apostila de-arduinoApostila de-arduino
Apostila de-arduino
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

PHP não é coisa de moleque

  • 1. PHP NÃO é coisa de Felipe Ribeiro http://feliperibeiro.com moleque! felipernb@gmail.com
  • 2. Enquanto .NET e Java brigam, fazendo Text muito barulho...
  • 3. PHP se mantém como a tecnologia número 1 da Web.
  • 4. Eles dizem que PHP “não aguenta o Text tranco” e que “é coisa de moleque”
  • 5. Mas por que PHP carrega essa má fama?
  • 6. Por causa dos profissionais desqualificados...
  • 8. E pela falta de propaganda...
  • 9. Esse cenário pode mudar, só depende da comunidade - que somos nós...
  • 10. Qualificação de profissionais •PHP é fácil de aprender e fácil de fazer porcaria •Programadores Java precisam de uma formação mais sólida (orientação a objeto, padrões de projeto, eficiência de algoritmos, estruturas de dados, etc. e tal) •BONS programadores PHP também precisam!!!
  • 11. Marketing •PHP não é da Sun nem da Microsoft... •Mas é bancado por: •IBM •Oracle •Yahoo! •entre outros...
  • 12. Marketing •PHP está presente em mais de 25 milhões de sites •Com tudo isso, pra que propaganda? A propaganda somos nós e tudo o que nós fazemos!
  • 13. E que tal esclarecermos os mitos?
  • 14. Mito #1 - Códigos PHP são sujos http://flickr.com/photos/ripizzo/2310929170/
  • 15. interface Printer { void print(Message message); } class SystemOutPrinter implements Printer { class Message { public void print(Message message) { private String message; System.out.println(message); public Message(String message) { } this.message = message; } } public void print(Printer printer) { public class HelloWorld { printer.print(this); } public static void main(String[] args) { Message message = new Message("Hello, public String toString() { World!"); return message; AbstractPrinterFactory factory = } AbstractPrinterFactory.getFactory(); } m Printer printer = factory.getPrinter(); e message.print(printer); abstract class AbstractPrinterFactory { } ld public static AbstractPrinterFactory getFactory() { r } return new SystemOutPrinterFactory(); o ! } public abstract Printer getPrinter(); W A acia lo AV rocr } class SystemOutPrinterFactory extends e l J u H AbstractPrinterFactory { public Printer getPrinter() { ab } return new SystemOutPrinter(); e su }
  • 16. Quem determina a qualidade do código é o programador! http://flickr.com/photos/zach_manchester/2302683790/
  • 17. Mito #2 - PHP só serve para sistemas pequenos http://flickr.com/photos/memotions/259656126
  • 18. T! E os .N a d ic rí st é c te oft so ra ros e ca ic Is ad os M b ilid ut ta rod a es p E P.S.: O orkut foi reescrito em Java, mas esse shot é dos velhos tempos de .NET
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. PHP escala muito e de maneira muito simples!
  • 27. OOP Mito #3 - PHP não implementa OO “de verdade”
  • 28. • PHP5 trouxe: • Níveis de visibilidade OOP • Exceptions • Interfaces • Type hinting • SPL - Standard PHP Library
  • 29. • Frameworks MVC • Zend Framework OOP • Symfony • CakePHP • Code Igniter • Prado, etc...
  • 30. Mito #4 - Existem poucas ferramentas para desenvolvimento em PHP http://www.flickr.com/photos/mamabarns/747588843
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Mito #5 - PHP não está pronto para aplicações “enterprise”
  • 39. SOAP
  • 40.
  • 41. XML http://flickr.com/photos/willpate/63814657/
  • 42.
  • 43. REST http://flickr.com/photos/estherase/128983854/
  • 45. E o que podemos esperar para o futuro?
  • 46. PHP 5.3 •Namespaces Definição Uso // diretamente namespace YahooNews; $foo = new YahooNewsDir; class Dir {     ... // importando o namespace } use YahooNews; $foo = new NewsDir; // renomeando a classe use YahooNewsDir as YND; $foo = new YND;
  • 47. PHP 5.3 •Lambdas e closures $lambda = function () {  echo "Hello World!n"; }; $lambda();
  • 48. PHP 5.3 •Lambdas e closures function getSomador($x) {     return function ($y) use ($x) {         return $x + $y;     }; } $somador = getSomador(10); echo $somador(5); //15 echo $somador(32); //42
  • 49. PHP 5.3 •PHAR - PHP Archive •Garbage collection •Late static binding •Outros refatoramentos e correções de bug.
  • 50. PHP 6 = PHP 5.3 + Unicode
  • 52. Felipe Ribeiro felipernb@gmail.com http://feliperibeiro.com http://www.flickr.com/photos/jaredchapman/482538719
  • 53. Referências •PHP for Grown-ups Andrei Zmievski - http://gravitonic.com/talks •Myths Defused Derick Rethans - http://talks.php.net/show/myths- ffm2008 http://www.flickr.com/photos/nullalux/2261949240