PHP Conference Brazil 2015 - PHP + Sharepoint - Integrando Serviços Microsoft com PHP
Rumo à Certificação PHP
-
Upload
ari-stopassola-junior -
Category
Education
-
view
561 -
download
1
Transcript of Rumo à Certificação PHP
Rumo à certificação PHPAri Stopassola Junior
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
http://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.00http://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: http://www.gedtestingservice.com/testers/noteboards
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;?>
|
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:
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.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).
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_decodebase64_decode
urldecodegzdecode
error_get_lastfunc_get_arg
fgetcsvgethostname
str_padstr_splitstr_replacestr_getcsv
strlenstrptimestrrevstristr
Inconsistências: case insensitive – i versus case
Case sensitive Case insensitive strpos striposstr_replace str_ireplacestrcmp strcasecmp
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
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)
Quiz<?phpif("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 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}
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
Disciplina
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)
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 Novateccoming 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.phphttps://github.com/fabriciobrag/android-quiz-php
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/arijuniorSites:
http://www.perito.inf.brhttp://www.certificamp.com http://www.rumoacertificacaophp.com
Contatos