rumo à certificação php
TRANSCRIPT
![Page 1: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/1.jpg)
Rumo à certificação PHPAri Stopassola Junior
![Page 2: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/2.jpg)
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
![Page 3: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/3.jpg)
Histórico
![Page 4: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/4.jpg)
![Page 5: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/5.jpg)
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
http://www.zend.com/en/yellow-pages/ZEND004019
![Page 6: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/6.jpg)
Logotipo para empresas que desejam contratar profissionais ZCPE
Desconto na compra de vouchers acima de 10 unidades: [email protected]
![Page 7: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/7.jpg)
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.00http://shop.zend.com/en/php-certification.html$195.00
7 a 10%
![Page 8: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/8.jpg)
Zend Education Advisory Board
Fonte: http://www.zend.com/services/certification/php-5-certification/education-advisory-board
![Page 9: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/9.jpg)
Itens permitidos
• Eraseable board (quadro apagável)• Protetor auricular
• Sua conduta é monitorada o tempo todo• Qualquer suspeita de irregularidade, sua prova é
invalidada
Fonte: http://www.gedtestingservice.com/testers/noteboards
![Page 10: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/10.jpg)
Eraseable board<?phpinterface 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;?>
|
![Page 11: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/11.jpg)
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…
![Page 12: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/12.jpg)
Ansiedade
![Page 13: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/13.jpg)
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
![Page 14: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/14.jpg)
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.
![Page 15: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/15.jpg)
FAIL
“Certification Exam Retakes”. Para mais informações escreva:
![Page 16: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/16.jpg)
CONGRATULATIONS
![Page 17: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/17.jpg)
Relatório emitido no ato
![Page 18: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/18.jpg)
Diploma físico
![Page 19: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/19.jpg)
![Page 20: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/20.jpg)
![Page 21: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/21.jpg)
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
![Page 22: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/22.jpg)
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)
![Page 23: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/23.jpg)
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)
![Page 24: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/24.jpg)
Resposta: escolha única
✓
![Page 25: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/25.jpg)
LEFT JOIN
SELECT names.name,emails.emailFROM namesLEFT 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).
![Page 26: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/26.jpg)
Resposta: escolha múltipla
✓
✓
![Page 27: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/27.jpg)
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.
![Page 28: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/28.jpg)
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
![Page 29: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/29.jpg)
Freetext
abstract
![Page 30: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/30.jpg)
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
![Page 31: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/31.jpg)
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
![Page 32: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/32.jpg)
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
![Page 33: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/33.jpg)
Quiz
✓
![Page 34: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/34.jpg)
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
![Page 35: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/35.jpg)
Inconsistências: underscore
Com underscore Sem underscorejson_decodebase64_decode
urldecodegzdecode
error_get_lastfunc_get_arg
fgetcsvgethostname
str_padstr_splitstr_replacestr_getcsv
strlenstrptimestrrevstristr
![Page 36: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/36.jpg)
Inconsistências: case insensitive – i versus case
Case sensitive Case insensitive strpos striposstr_replace str_ireplacestrcmp strcasecmp
![Page 37: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/37.jpg)
Inconsistências: verbo versus objeto
Objeto/verbo Verbo/objetosocket_readldap_read
readdirreadfile
date_parsexml_parse
parse_strparse_url
imap_checkpspell_check
checkdnsrrcheckdate
timezone_version_getrealpath_cache_getini_get
getheadersgetcwdgetenv
![Page 38: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/38.jpg)
Ordem de parâmetros
• Ordem dos argumentos discrepante:array_map(callback, array)enquanto quearray_filter(array, callback)
• Anomalias na nomenclatura:bindtextdomain(domínio, diretório)bind_textdomain_codeset(domínio, codeset)
![Page 39: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/39.jpg)
Quiz<?phpif("um"==0){
echo "Verdadeiro";}else {
echo "Falso";}?>
![Page 40: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/40.jpg)
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)
![Page 41: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/41.jpg)
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
![Page 42: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/42.jpg)
Tela de revisão
![Page 43: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/43.jpg)
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
![Page 44: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/44.jpg)
ZCE (PHP 5.3) ZCPE (PHP 5.5)
• Opcode Cachezend_extension=opcache.soopcache.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 tabelatry {
escreve no banco de dados
desbloqueia tabela}catch exceção {
reporta problemasdesbloqueia tabela
}
Códi
go re
dund
ante
bloqueia tabelatry {
escreve no banco de dados}catch exceção {
reporta problemas}finally {
desbloqueia tabela}
![Page 45: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/45.jpg)
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 Do
ug B
iere
r
![Page 46: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/46.jpg)
Disciplina
![Page 47: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/47.jpg)
Lista de discussão:Rumo à certificação PHPwww.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
Gus
tavo
– no
v/20
13 e
m O
sasc
o (S
P)
![Page 48: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/48.jpg)
Recomendada pela própria Zend!
![Page 49: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/49.jpg)
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 Novateccoming soon…
Ari e Cyrille – jul/2014 em Gramado (RS)
![Page 50: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/50.jpg)
App para Android - autoria de Fabricio Bedeschi: [email protected]
https://play.google.com/store/apps/details?id=com.quiz.phphttps://github.com/fabriciobrag/android-quiz-php
![Page 52: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/52.jpg)
Logotipo feito cordialmente pelo francês Vincent Pontier –
criador do elePHPant (mascote oficial do PHP)
@Elroubio
![Page 53: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/53.jpg)
Pasta compartilhada no DropBox e GoogleDrive
Pedidos diretamente ao nosso "guardião" das pastas compartilhadas:
Gustavo Pereira <[email protected]>
![Page 54: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/54.jpg)
Dicas de quem já é certificado
https://www.youtube.com/watch?v=GE0d3rkkLmYhttps://www.youtube.com/watch?v=LOupOxdSWtohttps://www.youtube.com/watch?v=RuSZfeLpiv8
![Page 55: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/55.jpg)
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
![Page 56: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/56.jpg)
Simulados e Apps
![Page 57: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/57.jpg)
Saindo do forno…Livro inédito sobre o assunto (principalmente em português) com a autoria de Matheus Marabesi e Michael Douglas Barbosa Araujo
![Page 58: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/58.jpg)
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
![Page 59: Rumo à Certificação PHP](https://reader036.vdocuments.pub/reader036/viewer/2022062412/58f284a71a28ab27528b45f1/html5/thumbnails/59.jpg)
E-mail: [email protected]: @stopassolaSkype: stopassolaLinkedIn: http://pt.linkedin.com/in/stopassolaFacebook: http://www.facebook.com/arijuniorSites:
http://www.perito.inf.brhttp://www.certificamp.com http://www.rumoacertificacaophp.com
Contatos