$30 off During Our Annual Pro Sale. View Details »

Preparando-se para a prova da Certificação Zend PHP 5.3

Preparando-se para a prova da Certificação Zend PHP 5.3

A palestra tem como objetivo mostrar os perigos e desafios da nova prova, como se preparar para ela, além de mostrar os benefícios da certificação. Com o crescimento do PHP como linguagem, seu sucesso e popularidade, o mercado para desenvolvedores PHP está bastante fértil. Infelizmente, pela linguagem ter uma barreira de entrada muito pequena, temos muitos desenvolvedores de araque.

Klaus Silveira

December 04, 2011
Tweet

More Decks by Klaus Silveira

Other Decks in Programming

Transcript

  1. View Slide

  2. View Slide

  3. sobre a certificação
    A certificação foi criada pela Zend, a empresa por trás do PHP,
    com o objetivo de estabelecer um padrão de excelência no
    conhecimento técnico da linguagem.
    Ela é importantíssima para:
    ● Profissionais poderem mostrar seu conhecimento
    ● Mercado reconhecer profissionais competentes
    ● Linguagem ser menos vista como "amadora"

    View Slide

  4. o que é a certificação
    A certificação é um reconhecimento das habilidades do
    profissional envolvendo desenvolvimento de aplicações web
    usando o PHP 5.3.
    Ela ajuda a mostrar que o profissional:
    ● É experiente desenvolvendo aplicações web
    ● Conhece a fundo a linguagem e suas funcionalidades
    ● Conhece a web e como aplicações web funcionam
    ● Conhece OO, segurança e bancos de dados

    View Slide

  5. a certificação não é
    ● Apenas passar em uma prova
    ● Sorte ou chutes
    ● Garantia de bom salário ou promoções
    ● Garantia de um ótimo desenvolvedor

    View Slide

  6. para que?
    Como um Zend Certified Engineer você:
    ● Fará parte de uma comunidade de mais de 7000
    profissionais certificados no mundo e mais de 180 certificados
    no Brasil
    ● Mostrará que você sabe do que está falando e sabe
    desenvolver aplicações de qualidade para web
    ● Se tornará um profissional diferenciado num mercado
    turbulento e cheio de "arapucas"
    ● Extras! Descontos em eventos e versões gratuitas de
    software da Zend

    View Slide

  7. sobre a prova
    A prova de certificação é montada por um grupo de gurus da
    comunidade. Nomes de peso como Matthew Weier O'Phinney,
    Chris Shiflett, Zeev Suraski, Andi Gutmans, Marco Tabini e Ivo
    Jansch estão no grupo.
    A prova:
    ● Possui 70 questões e 90 minutos para resolvê-las
    ● Possui vários níveis de dificuldade e peso
    ● Possui questões de múltipla escolha e dissertativas

    View Slide

  8. conteúdo
    Com o lançamento da versão 5.3 do PHP, que trouxe muitas
    novidades, a prova foi atualizada. A prova possui 10 tópicos,
    sendo eles:
    ● Sintaxe e funcionalidades básicas da linguagem
    ● Tipos de dados e formatos
    ● Strings e expressões regulares
    ● Arrays
    ● Input/Output
    ● Funções
    ● Orientação a Objetos
    ● Bancos de dados
    ● Segurança
    ● Funcionalidades web

    View Slide

  9. questões
    As questões da prova:
    ● Pedirão um conhecimento geral sobre o protocolo HTTP
    ● Pedirão um conhecimento geral sobre SQL
    ● Pedirão um conhecimento geral sobre XML
    ● Sempre referem-se a um ambiente onde register_globals
    está desativada, assim como a magic_quotes_gpc. Além disso, o
    modo de erros é E_ALL e erros são sempre mostrados.
    ● Quando dissertativas, pedirão apenas um nome de função
    ou saída de código, nada longo ou trabalhoso
    ● Quando de múltipla-escolha, o número de opções corretas
    pode variar
    ● Exigem atenção e calma
    ● Pegadinhas!

    View Slide

  10. peso
    Maior peso:
    ● Sintaxe e funcionalidades básicas da linguagem
    ● Segurança
    ● Funcionalidades web
    Peso médio:
    ● Strings e expressões regulares
    ● Arrays
    ● Funções
    ● Orientação a Objetos
    Menor peso:
    ● Bancos de dados
    ● Tipos de dados
    ● Input/Output

    View Slide

  11. o que mudou?
    Algumas mudanças em relação a prova antiga:
    ● Novas funcionalidades do PHP 5.3 agora cobertas:
    ● Namespaces
    ● Closures, lambdas
    ● Perguntas sobre diferenças entre PHP 4 e 5 removidas
    ● Alguns tópicos foram unidos (ex.: Strings e Expressões
    Regulares)

    View Slide

  12. onde fazer?
    ● A prova da certificação Zend é administrada por centros
    Pearson Vue: pearsonvue.com/zend
    ● O voucher para fazer a prova custa $195
    ● Após comprar o voucher, você pode se cadastrar no site
    da Pearson Vue e agendar a prova no centro de treinamento
    mais próximo de você
    ● O voucher é válido por 1 ano depois da data de compra
    ● Leve sua identidade com foto para o dia da prova!

    View Slide

  13. sintaxe e linguagem
    Este capítulo engloba:
    ● Sintaxe
    ● Operadores
    ● Variáveis
    ● Estruturas de controle
    ● Funções
    ● Constantes
    ● Namespaces
    ● Extensões e AJAX
    ● Configuração
    ● Performance

    View Slide

  14. questão
    Qual a saída do código abaixo?
    1) 4
    2) 3
    3) 5
    4) 0
    5) 1
    $a = 1;
    ++$a;
    $a *= $a;
    echo $a--;

    View Slide

  15. questão
    A função tax() é definida no namespace 'store\utils\math'. Seu
    código está no namespace 'store'. Como você deve importar o
    namespace correto para usar a função?
    1) use math
    2) use utils\math
    3) use store\utils\math
    4) use store\utils\math\tax

    View Slide

  16. tipos e formatos
    Este capítulo engloba:
    ● XML Básico
    ● Extensão XML
    ● SimpleXML
    ● XPath
    ● Web services
    ● SOAP
    ● REST
    ● JSON & AJAX
    ● Data & Hora
    ● DOM

    View Slide

  17. questão
    Qual a saída do código abaixo?
    1) James
    2) Nada
    3) Um erro
    4) Dido
    $xml = '

    James
    Leila


    Dido
    George

    ';
    $xmlElement = new SimpleXMLElement($xml);
    $teens = $xmlElement->xpath('*/child[@age>9]');
    echo $teens[1];

    View Slide

  18. strings e regex
    Este capítulo engloba:
    ● Sintaxe
    ● Encontrando
    ● Extraindo
    ● Buscando
    ● Substituindo
    ● Formatando
    ● PCRE
    ● HEREDOC & NOWDOC
    ● Codificação

    View Slide

  19. questão
    Qual a saída do código abaixo?
    $str = 'abcdef';
    if(strpos($str, 'a')) {
    echo "Achei a letra 'a'";
    } else {
    echo "Não achei a letra 'a'";
    }

    View Slide

  20. arrays
    Este capítulo engloba:
    ● Arrays numerados
    ● Arrays associativos
    ● Arrays multidimensionais
    ● Iterando
    ● Funções
    ● SPL

    View Slide

  21. questão
    Qual a saída do código abaixo?
    1) Um array vazio
    2) 0.001 => 'b', .1 => 'c'
    3) 0 => 'c'
    4) '0.001' => 'b', '0.1' => 'c'
    5) Um erro
    $array = array(0.001 => 'b', .1 => 'c');
    print_r($array);

    View Slide

  22. entrada e saída
    Este capítulo engloba:
    ● Arquivos
    ● Lendo
    ● Escrevendo
    ● Sistema de arquivos
    ● Streams
    ● Contextos

    View Slide

  23. questão
    O que precisa ser inserido no código abaixo?
    $dh = opendir(".");
    while ($file = ___($dh)) {
    echo $file;
    }

    View Slide

  24. funções
    Este capítulo engloba:
    ● Sintaxe
    ● Parâmetros
    ● Variáveis
    ● Referências
    ● Retornos
    ● Escopo de variáveis
    ● Funções anônimas

    View Slide

  25. questão
    Qual a saída do código abaixo?
    1) 2
    2) 4
    3) 5
    4) 10
    5) Um erro
    function apple($apples = 4) {
    $apples = $apples / 2;
    return $apples;
    }
    $apples = 10;
    apple($apples);
    echo $apples;

    View Slide

  26. orientação a objetos
    Este capítulo engloba:
    ● Sintaxe
    ● Métodos e propriedades
    ● Herança e classes/métodos abstratos
    ● Encapsulamento
    ● Interfaces
    ● Exceções
    ● Métodos e propriedades estáticas
    ● Autoload
    ● Reflexão
    ● Type hinting

    View Slide

  27. questão
    Qual é a sintaxe correta para definir uma constante de classe
    para a classe MinhaClasse?
    1) const $NOME = "valor";
    2) Define("MinhaClasse::NOME", "valor");
    3) const NOME = "valor";
    4) static final $NOME = "valor";

    View Slide

  28. bancos de dados
    Este capítulo engloba:
    ● SQL
    ● Joins
    ● Analisando queries
    ● Prepared statements
    ● Transactions
    ● PDO

    View Slide

  29. questão
    Com base na tabela “names” abaixo:
    Quantos resultados serão retornados pela query:
    SELECT * FROM names WHERE pos < 10
    1) 3
    2) 4
    3) 5
    4) 6
    pos name email
    -2 anna [email protected]
    -1 betty [email protected]
    NULL clara [email protected]
    1 demi [email protected]
    2 emma [email protected]
    3 gabi [email protected]

    View Slide

  30. segurança
    Este capítulo engloba:
    ● Configuração
    ● XSS
    ● CSRF
    ● SQL Injection
    ● Remote code injection
    ● Email injection
    ● Filtros
    ● Criptografia

    View Slide

  31. questão
    Qual das medidas abaixo proporciona uma boa proteção contra
    ataques CSRF?
    1) Confiar apenas em um POST HTTP
    2) Confiar no referer
    3) Confiar em um token único
    4) Confiar no user agent

    View Slide

  32. funcionalidades web
    Este capítulo engloba:
    ● Sessões
    ● Formulários
    ● GET e POST
    ● Cookies
    ● Protocolo HTTP
    ● Cabeçalho HTTP
    ● Autenticação HTTP

    View Slide

  33. questão
    Que tipo de criptografia é utilizada no método de autenticação
    Basic do protocolo HTTP?
    1) Nenhum
    2) Hashing
    3) Chave simétrica
    4) Chave assimétrica

    View Slide

  34. View Slide