Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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. 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"
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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!
  8. 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
  9. 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)
  10. 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!
  11. 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
  12. questão Qual a saída do código abaixo? 1) 4 2)

    3 3) 5 4) 0 5) 1 <?php $a = 1; ++$a; $a *= $a; echo $a--;
  13. 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
  14. tipos e formatos Este capítulo engloba: • XML Básico •

    Extensão XML • SimpleXML • XPath • Web services • SOAP • REST • JSON & AJAX • Data & Hora • DOM
  15. questão Qual a saída do código abaixo? 1) James 2)

    Nada 3) Um erro 4) Dido <?php $xml = '<root> <parent name="Peter"> <child age="20">James</child> <child age="5">Leila</child> </parent> <parent name="Anna"> <child age="10">Dido</child> <child age="11">George</child> </parent> </root>'; $xmlElement = new SimpleXMLElement($xml); $teens = $xmlElement->xpath('*/child[@age>9]'); echo $teens[1];
  16. strings e regex Este capítulo engloba: • Sintaxe • Encontrando

    • Extraindo • Buscando • Substituindo • Formatando • PCRE • HEREDOC & NOWDOC • Codificação
  17. questão Qual a saída do código abaixo? <?php $str =

    'abcdef'; if(strpos($str, 'a')) { echo "Achei a letra 'a'"; } else { echo "Não achei a letra 'a'"; }
  18. arrays Este capítulo engloba: • Arrays numerados • Arrays associativos

    • Arrays multidimensionais • Iterando • Funções • SPL
  19. 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 <?php $array = array(0.001 => 'b', .1 => 'c'); print_r($array);
  20. entrada e saída Este capítulo engloba: • Arquivos • Lendo

    • Escrevendo • Sistema de arquivos • Streams • Contextos
  21. questão O que precisa ser inserido no código abaixo? <?php

    $dh = opendir("."); while ($file = ___($dh)) { echo $file; }
  22. funções Este capítulo engloba: • Sintaxe • Parâmetros • Variáveis

    • Referências • Retornos • Escopo de variáveis • Funções anônimas
  23. questão Qual a saída do código abaixo? 1) 2 2)

    4 3) 5 4) 10 5) Um erro <?php function apple($apples = 4) { $apples = $apples / 2; return $apples; } $apples = 10; apple($apples); echo $apples;
  24. 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
  25. 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";
  26. bancos de dados Este capítulo engloba: • SQL • Joins

    • Analisando queries • Prepared statements • Transactions • PDO
  27. 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]
  28. segurança Este capítulo engloba: • Configuração • XSS • CSRF

    • SQL Injection • Remote code injection • Email injection • Filtros • Criptografia
  29. 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
  30. funcionalidades web Este capítulo engloba: • Sessões • Formulários •

    GET e POST • Cookies • Protocolo HTTP • Cabeçalho HTTP • Autenticação HTTP
  31. 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