59
Rumo à cer*ficação PHP Ari Stopassola Junior CERTIFIED PHP ENGINEER

PHP Experience 2016 - [Palestra] Rumo à Certificação PHP

Embed Size (px)

Citation preview

Rumo  à  cer*ficação  PHP  Ari  Stopassola  Junior  

CERTIFIEDPHP ENGINEER

Vantagens •  Prestígio e reconhecimento junto a comunidade•  Processo rigoroso de aprovação•  Demonstra maturidade e proficiência na linguagem

•  Permissão para uso dos logotipos oficiais nos cartões de visita•  Ganha uma licença perpétua do editor Zend Studio (versão vigente)

•  Visibilidade internacional através da “Zend Certified Engineer Directory”, antigamente conhecida como “Yellow Pages”

•  Diferencial e bonificações salariais•  Descontos em conferências Zend

•  O título ZCE/ZCPE não expira!•  Acesso a grupos exclusivos

•  Oportunidades de outsourcing

Histórico

Estatísticas: Yellow Pages

Até o momento (março/2016) há somente 450 profissionais certificados ZCE/ZCPE no Brasil: ���

http://www.zend.com/en/services/certification/zend-certified-engineer-directory

h0p://www.zend.com/en/yellow-­‐pages/ZEND004019    

Logotipo para empresas que desejam contratar profissionais ZCPE

Desconto na compra de vouchers acima de 10 unidades: [email protected]

Preço e cupons de desconto

http://www.softwarediscountcodes.com/zend-phpcertification.htmlhttp://www.softwarevouchers.com/zend-phpcertifications.html ���http://www.retailmenot.com/view/zend.com

•  Havia um bug no site onde o preço nos EUA (atribuído em dólar) era o mesmo valor da Europa (porém em euros, mais oneroso)http://shop.zend.com/eu/php-certification.html ���€170.00���http://shop.zend.com/en/php-certification.html ���$195.00

7  a  10%  

Zend Education Advisory Board

Fonte: http://www.zend.com/services/certification/php-5-certification/education-advisory-board

Itens permitidos

•  Eraseable board (quadro apagável)•  Protetor auricular

•  Sua conduta é monitorada o tempo todo

•  Qualquer suspeita de irregularidade, sua prova é invalidada

Fonte:  h0p://www.gedtesHngservice.com/testers/noteboards    

Eraseable board

<?php interface i1 {} interface i2 extends i1 {} interface i3 {}

class c1 {} class c2 extends c1 {} class c3 extends c2 implements i2, i3 {}

$c3 = new C3(); echo $c3 instanceof c1; echo $c3 instanceof c2;

echo $c3 instanceof c3; echo $c3 instanceof i1; echo $c3 instanceof i2;

echo $c3 instanceof i3; ?>

|  

Reagendamento

• Pode-se reagendar quantas vezes quiser durante UM ano, através do site http://www.pearsonvue.com

• No mínimo 48 horas de antecedência•  Sem custo adicional• Porém, há um efeito colateral…

Ansiedade

Estrutura do exame

•  70 perguntas randômicas•  Limite de 90 minutos para respondê-las•  ≅1 minuto e 17 segundos por questão!•  Caráter neutro•  Jamais se repetem•  Distribuídas entre os dez tópicos•  Tem mesmo peso•  Respostas incorretas não geram penalidades

O que NÃO cai

Classes ou extensões externas provenientes da PEAR/Pyrus ou PECL (CodeSniffer, PhpDocumentor, xDebug, profiler, GD, Phing, fPDF), ou vindo de outros repositórios como a PHPUnit, Composer (gerenciador de dependências), Suhosin (sistema de segurança em PHP), sistemas para controle de versão (CVS, Subversion, Git, Mercurial), empacotamento PHAR, procedimentos para Integração Contínua com Jenkins (e seus módulos como PHPMD-MessDetector, DRY-Copy&Paste Detector, PHP_Depend), sistema de templates (Smarty e Twig), PHP-GTK, Frameworks (CakePHP, CodeIgniter, Symfony, ZendFramework, YII, Prado), CMS (Typo3, Wordpress, Joomla!, Drupal), sistemas especializados (Magento, SugarCRM ou phpMyAdmin), editores (ZendStudio, NetBeans, PDT, Aptana, PhpED), mecanismos de cache (APC, Memcache e Gearman), ORM (Propel ou Doctrine), funções SQL específicas de algum banco de dados (que não sejam ANSI SQL), bases NoSQL e ferramentas Zend como Zend Optimizer+, Zend Java Bridge, Zend Guard Loader e outros.

FAIL

“Certification Exam Retakes”. Para mais informações escreva: [email protected]

CONGRATULATIONS

Relatório emitido no ato

Diploma físico

Dez tópicos

•  Fundamentos do PHP•  Funções•  Formato de dados e

tipos•  Recursos Web

•  Programação Orientada à Objetos

•  Segurança•  I/O (Entrada e Saída)•  Strings e Padrões

•  Banco de Dados•  Arrays

Alguns assuntos tem mais peso que outros

Ênfase maiorFundamentos do PHP, Programação Orientada à Objetos e Segurança

Ênfase médiaFunções, Recursos Web, Arrays e Strings e Padrões

Ênfase menorBanco de Dados, Formato de dados e tipos e I/O (Entrada e Saída)

Enunciados •  Não há syntax highlight•  O algoritmo é sempre na linguagem PHP – não exibem

pseudocódigos

•  Podem conter imagens para ilustrar (geralmente alguma tabela de BD, diagrama UML etc)

•  Independem de Sistema Operacional e Sistema Gerenciador de Banco de Dados (SGBD)

•  O teste também aborda, indiretamente, HTTP e SQL (Structured Query Language), XML (XPath) e JSON

•  Nem sempre eles estarão em blocos terminados em ?>, a menos que haja HTML (ou JavaScript) embedded

•  Pode fazer referência ao Apache (servidor de aplicação)

Resposta: escolha única

✓  

LEFT JOIN

SELECT names.name,emails.email FROM names

LEFT JOIN emails ON emails.id=names.id;

names   emails  

Prioriza a tabela da “esquerda”, que foi referenciada primeiro. Ou seja: permite que uma das tabelas (names) retorne linhas mesmo que não haja equivalência na outra tabela (emails).

Resposta: escolha múltipla

✓  

✓  

Quiz

Preencha o espaço em branco com o nome adequado.

A função _____________ chama automaticamente os recursos necessários sempre que um usuário tenta instanciar uma classe inexistente.

__autoload()

Nomes de funções devem ser escritas em caixa baixa (lowercase), sem espaços em branco, nem explicações

ou comentários. Com ou sem parênteses.

Resposta: campo aberto

•  É um tipo de pergunta menos frequente•  Recebe:– Nomes de funções/métodos/classes– Conteúdo de variáveis– Saída de código

– Pequenos trechos (snippets)– Tipos de erro: Notice, Warning ou Fatal error

– Nome de constantes

– Cláusula do php.ini

Freetext

abstract  

Comentar questão

•  Se você detectar algo estranho na questão, é possível fazer um comentário

•  Dificilmente vai ocorrer alguma resposta dúbia, enunciado mal construído, falta de dados…

•  O cronômetro continua correndo, portanto use com moderação

•  Seus comentário serão enviados diretamente para a Zend

Cláusulas padrão do php.ini

•  register_globals = Off•  magic_quotes_gpc = Off

•  error_reporting = E_ALL•  display_errors = On

Lembrando que as diretivas podem ser indicadas por 1 e 0, respectivamente On e Off. ���

Ex.: asp_tags = 0 (representa “Off”, desligado).

Removidas  na  versão  5.4  

5 MIL funções

Devo memorizar todas elas?E a ordem dos respectivos parâmetros?

O foco do teste é em análise de algoritmos ou

invés de memorização

Quiz

✓  

Armadilhas: "to" versus "2"

•  cal_to_jd•  ftok•  idn_to_ascii•  idn_to_unicode•  idn_to_utf8•  strtok•  strtolower•  strtotime•  strtoupper

•  bin2hex•  deg2rad•  hex2bin•  image2wbmp•  ip2long•  jpeg2wbmp•  ldap_dn2ufn•  ldap_err2str•  long2ip•  nl2br•  png2wbmp•  px_date2string•  px_timestamp2string•  rad2deg

Inconsistências: underscore

Com underscore Sem underscorejson_decode base64_decode

urldecode gzdecode

error_get_last func_get_arg

fgetcsv gethostname

str_pad str_split str_replace str_getcsv

strlen strptime strrev stristr

Inconsistências: case insensitive – i versus case

Case sensitive Case insensitive strpos stripos str_replace str_ireplace strcmp strcasecmp

Inconsistências: verbo versus objeto

Objeto/verbo Verbo/objetosocket_read ldap_read

readdir readfile

date_parse xml_parse

parse_str parse_url

imap_check pspell_check

checkdnsrr checkdate

timezone_version_get realpath_cache_get ini_get

getheaders getcwd getenv

Ordem de parâmetros

•  Ordem dos argumentos discrepante: ���array_map(callback, array) ���enquanto que���array_filter(array, callback)

•  Anomalias na nomenclatura: ���bindtextdomain(domínio, diretório) bind_textdomain_codeset(domínio, codeset)

Quiz

<?php if("um"==0){ echo "Verdadeiro"; } else { echo "Falso"; } ?>

Type Juggling

•  PHP é uma linguagem fracamente tipada •  Teste com == não compara os tipos de dados,

diferentemente do === (idêntico) •  Implicitamente o PHP realiza casting automático•  converte a string “um” em integer, resultando em

inteiro 0•  Consequentemente o teste 0==0 é verdadeiro. Ex.: ���var_dump(intval("um")); //int(0) var_dump(intval(0)); //int(0)

Marcar para revisão

•  Priorize as questões mais curtas•  Antes de realizar o teste de mesa, verifique se as chamadas de

função estão com a sintaxe correta

•  Marque para revisão

Tela de revisão

ZCE (PHP 5.3) è ZCPE (PHP 5.5)

•  Built-in web server: php -S localhost:8080•  Cronômetro de alta precisão: ���

$_SERVER['REQUEST_TIME_FLOAT'] •  Novas formas de manipulação de arrays���

$array2 = [1,2,3,4]; echo ObtemArray()[1];

•  Class member access on instantiation: ���echo (new DateTime)->getTimestamp();

•  http_response_code(404); •  Traits

•  Formato binário: $bin = 0b11001; •  Status de sessão: session_status();

•  $this e use em Closures•  Progresso de upload: session.upload_progress.enabled = On

PHP  5.4  

ZCE (PHP 5.3) è ZCPE (PHP 5.5)

•  Opcode Cache���zend_extension=opcache.so opcache.enable=1

•  Iteração com generators (yield )

•  API para hashing de senha: password_hash("senha", PASSWORD_BCRYPT); •  try, catch e finally:

PHP  5.5  

bloqueia tabela try {

escreve no banco de dados desbloqueia tabela

} catch exceção {

reporta problemas desbloqueia tabela

}

Código  re

dund

ante  

bloqueia tabela try {

escreve no banco de dados } catch exceção {

reporta problemas } finally {

desbloqueia tabela }

Preparatório oficial da Zend

•  Zend PHP 5.3 Certification Training ministrado pelo instrutor Doug Bierer: http://static.zend.com/topics/videos/training/php-5-3-cert-introduction/

•  Test Prep: PHP Certification - online (9 encontros de 2 horas cada) ���http://www.zend.com/en/services/training/php-5-cert ���US$ 1.000

•  Test Prep: PHP Certification - recorded Sessions (7 horas no total) ���http://www.zend.com/en/services/training/php-certification-course ���US$ 499

Dou

g Bi

erer

Disciplina

Lista de discussão: Rumo à certificação PHP www.rumoacertificacaophp.com

•  Criada em 31/07/2010•  Atualmente com 1.600 membros

•  Ficou conhecida pela “Pergunta do dia”•  Hoje, dia 22/março, foi publicada a pergunta de nº 2.045

•  Grupo no Facebook: http://www.facebook.com/groups/434330716587436/

Primeiro  logo,  criado  por  Gustavo  Pereira  

Ari

e G

usta

vo –

nov

/201

3 em

Osa

sco

(SP)

Recomendada pela própria Zend!

Livros

•  Rumo à Certificação PHP por Kinn Coelho Julião <[email protected]> https://leanpub.com/rumoacertificaophp

•  Certification PHP 5.5: Zend Certified PHP Engineer por Cyrille Grandval e Julien Charpentier

•  Em breve, pela editora Novatec���coming soon…

Ari e Cyrille – jul/2014 em Gramado (RS)

App para Android - autoria de Fabricio Bedeschi: [email protected]

https://play.google.com/store/apps/details?id=com.quiz.php https://github.com/fabriciobrag/android-quiz-php

TCC de graduação em Informática por João Paulo Cercal [email protected]

h0p://zcpe.cekurte.com    

Logotipo feito cordialmente pelo francês Vincent Pontier – criador do elePHPant (mascote oficial do PHP)

@Elroubio    

Pasta compartilhada no DropBox e GoogleDrive

Pedidos diretamente ao nosso "guardião" das pastas compartilhadas: ���Gustavo Pereira <[email protected]>

Dicas de quem já é certificado https://www.youtube.com/watch?v=GE0d3rkkLmYhttps://www.youtube.com/watch?v=LOupOxdSWtohttps://www.youtube.com/watch?v=RuSZfeLpiv8

Roteiro

•  Livro “PHP Programando com Orientação a Objetos” do autor Pablo Dall'Oglio:http://www.novatec.com.br/livros/phpobjetos2/

•  Vídeo-aulas da Lynda, Udemy e iMasters•  Analisar todas as "Perguntas do dia" da lista "Rumo à Certificação PHP"

http://rumoacertificacaophp.com/ Tempo

US$  19,95  

Simulados e Apps

Saindo do forno… Livro inédito sobre o assunto (principalmente em português) com a autoria de Matheus Marabesi e Michael Douglas Barbosa Araujo

Certificamp

•  Inspirado no http://www.bignerdranch.com •  "Acampamento" de estudos para a certificação PHP•  Curso itinerante, presencial e de imersão•  Preparatório para o exame "Zend Certified PHP

Engineer"

https://www.facebook.com/certificamp https://www.twitter.com/certificamp

E-mail: [email protected]: @stopassolaSkype: stopassolaLinkedIn: http://pt.linkedin.com/in/stopassolaFacebook: http://www.facebook.com/arijunior

Sites:http://www.perito.inf.brhttp://www.certificamp.com http://www.rumoacertificacaophp.com

Contatos