La certification PHP 5
Anaska présente :
Quizz d'entrainement
à la certification PHP 5
2 avril 2009 ANASKA – certification PHP 1
Participez ! Prenez un bulletin de réponse
La certification PHP 5
Qui sommes-nous ?
Julien PAULI
PHP & ZendFramework
Contributeur
Auteur
Sarah Haim
AFUP : www.afup.org
PHP/Symfony + Ajax/Web Standards
PHPFrance.com
2 avril 2009 ANASKA – certification PHP 2
Participez ! Prenez un bulletin de réponse
La certification ?
70 questions en QCM
90 minutes
Basée sur PHP 5.1
Nombreux sujets abordés
Généralités PHP
POO
HTTP et Réseau
Sécurité
XML
Services Web
Design patterns
2 avril 2009 ANASKA – certification PHP 3
Participez ! Prenez un bulletin de réponse
Comment s'inscrire ?
L'examen se passe près de chez vous
dans les centres Pearson VUE
– http://www.vue.com
2 pièces d'identité
Aucun document autorisé
Aucun accès à Internet
Une ardoise pour vos notes et calculs sur place
2 avril 2009 ANASKA – certification PHP 4
Participez ! Prenez un bulletin de réponse
Comment réussir ?
Stratégie :
Il n'y a pas de différences entre ne pas répondre ou une
réponse fausse
Certaines questions vous demandent d'écrire une réponse
Le niveau est élevé
But = vérifier compétences générales du candidat
Problématiques de conception
L'environnement Web et réseau
Il existe 2 ouvrages spécialisés
Il existe des formations de préparation
2 avril 2009 ANASKA – certification PHP 5
Participez ! Prenez un bulletin de réponse
Configuration pour la certif
Questions indépendantes de l'OS
Connaissance générale du web nécessaire :
HTTP, SQL, sécurité, cache, requêtes, protocoles ...
register_globals = off
Les erreurs sont affichées (display_error = on)
Si on ne vous dit rien : une seule réponse possible
Sinon on vous indique le nombre de réponses valides
2 avril 2009 ANASKA – certification PHP 6
Participez ! Prenez un bulletin de réponse
Quizz
Anaska organise un Quizz de 20 questions
Participez ! Prenez un bulletin de réponse
Correction par lots de 4 questions
Après le quizz, mettez vos bulletins dans l'urne
Tirage au sort
Indépendant de vos réponses à ce quizz
Prêts ?
2 avril 2009 ANASKA – certification PHP 7
Participez ! Prenez un bulletin de réponse
Question 1
Pour s'assurer qu'un objet donné possède un ensemble de
méthodes déterminées, vous devez fournir la liste de
méthodes sous la forme de ___________
Puis ensuite les rattacher en tant que partie de votre classe
en utilisant le mot-clef _____________
A) Une interface, implements
B) Une interface, extends
C) Une instance, implements
D) Une liste d'entrées, instance
2 avril 2009 ANASKA – certification PHP 8
Participez ! Prenez un bulletin de réponse
Question 2
Avec laquelle des fonctions suivantes allez vous le plus
efficacement supprimer les balises indésirables d'une entrée ?
A) strip_tags()
B) tidy_strip_html()
C) str_replace()
D) strip_html()
2 avril 2009 ANASKA – certification PHP 9
Participez ! Prenez un bulletin de réponse
Question 4
Quel est le principal avantage du parseur XML SAX sur DOM ?
A) Il n'a pas d'avantage spécial
B) Il est plus rapide que DOM
C) Il consomme moins de mémoire que DOM
D) Il est plus facile à manipuler
2 avril 2009 ANASKA – certification PHP 11
Participez ! Prenez un bulletin de réponse
Corrigeons
Nous allons maintenant livrer la correction
2 avril 2009 ANASKA – certification PHP 12
Participez ! Prenez un bulletin de réponse
Solution Question 1
Pour s'assurer qu'un objet donné possède un ensemble de
méthodes déterminées, vous devez fournir la liste de
méthodes sous la forme de ___________
Puis ensuite les rattacher en tant que partie de votre classe
en utilisant le mot-clef _____________
A) Une interface, implements
B) Une interface, extends
C) Une instance, implements
D) Une liste d'entrées, instance
2 avril 2009 ANASKA – certification PHP 13
Participez ! Prenez un bulletin de réponse
Solution Question 2
Avec laquelle des fonctions suivantes allez-vous le plus
efficacement supprimer les balises indésirables d'une entrée ?
A) strip_tags()
B) tidy_strip_html()
C) str_replace()
D) strip_html()
2 avril 2009 ANASKA – certification PHP 14
Participez ! Prenez un bulletin de réponse
Solution Question 4
Quel est le principal avantage du parseur XML SAX sur DOM ?
A) Il n'a pas d'avantage spécial
B) Il est plus rapide que DOM
C) Il consomme moins de mémoire que DOM
D) Il est plus facile à manipuler
2 avril 2009 ANASKA – certification PHP 16
Participez ! Prenez un bulletin de réponse
Question 5
Quelle est la meilleure façon de compter le nombre d'apparition
de chacune des occurrences dans ce tableau :
$array = array(1, 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 3, 2, 2, 2);
A) array_total_values()
B) array_count_values()
C) Une boucle foreach
D) Une boucle for
E) count()
2 avril 2009 ANASKA – certification PHP 17
Participez ! Prenez un bulletin de réponse
Question 6
Quelle est la sortie de ce script ?
<?php
function 1dotEach($n) {
if ($n > 0) {
1dotEach(--$n);
echo \".\";
} else {
return $n;
}
}
1dotEach(4);
A) ...0
B) Parse Error : Syntax Error
C) .....
D) ....
E) ...
2 avril 2009 ANASKA – certification PHP 18
Participez ! Prenez un bulletin de réponse
Question 7
Quels sont les tags supportés pour l'ouverture d'un code PHP ?
(4 réponses)
A) <script language=\"php\">
B) <!
C) <%
D) <?php
E) <?
2 avril 2009 ANASKA – certification PHP 19
Participez ! Prenez un bulletin de réponse
Question 8
Quelle est la sortie de ce script ?
<?php
function oranges(&oranges = 17) {
$oranges .= 1;
}
$apples = 5;
$oranges($apples);
echo $apples++;
A) 16
B) 51
C) 15
D) 6
E) 52
2 avril 2009 ANASKA – certification PHP 20
Participez ! Prenez un bulletin de réponse
Corrigeons
Nous allons maintenant livrer la correction
2 avril 2009 ANASKA – certification PHP 21
Participez ! Prenez un bulletin de réponse
Solution Question 5
Quelle est la meilleure façon de compter le nombre d'apparition
de chacune des occurrences dans ce tableau :
$array = array(1, 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 3, 2, 2, 2);
A) array_total_values()
B) array_count_values()
C) Une boucle foreach
D) Une boucle for
E) count()
2 avril 2009 ANASKA – certification PHP 22
Participez ! Prenez un bulletin de réponse
Solution Question 6
Quelle est la sortie de ce script ?
<?php
function 1dotEach($n) {
if ($n > 0) {
1dotEach(--$n);
echo \".\";
} else {
return $n;
}
}
1dotEach(4);
A) ...0
B) Parse Error : Syntax Error
C) .....
D) ....
E) ...
2 avril 2009 ANASKA – certification PHP 23
Participez ! Prenez un bulletin de réponse
Solution Question 7
Quels sont les tags supportés pour l'ouverture d'un code PHP ?
(4 réponses)
A) <script language=\"php\">
B) <!
C) <%
D) <?php
E) <?
2 avril 2009 ANASKA – certification PHP 24
Participez ! Prenez un bulletin de réponse
Solution Question 8
Quelle est la sortie de ce script ?
<?php
function oranges(&oranges = 17) {
$oranges .= 1;
}
$apples = 5;
$oranges($apples);
echo $apples++;
A) 16
B) 51
C) 15
D) 6
E) 52
2 avril 2009 ANASKA – certification PHP 25
Participez ! Prenez un bulletin de réponse
Question 9
Pour détruire une variable dans une session PHP, qu'utiliseriez-vous ?
A) unset() sur la variable dans $HTTP_SESSION_VARS
B) Utiliser session_destroy()
C) Utiliser session_unset()
D) unset() sur la variable dans $_SESSION
E) Toutes les options ci-dessus
2 avril 2009 ANASKA – certification PHP 26
Participez ! Prenez un bulletin de réponse
Question 10
Parmi les sources de données ci-après, lesquelles peuvent être
considérées comme sécurisées ?
A) $_ENV
B) $_GET
C) $_SERVER
D) $_COOKIE
E) Aucune
2 avril 2009 ANASKA – certification PHP 27
Participez ! Prenez un bulletin de réponse
Question 11
Quel design pattern est utilisé ici ?
<?php
class MyClassBuilder {
public function build() {
return new MyClass();
}
}
A) Monteur (builder)
B) Fabrique (factory)
C) Singleton
D) Observateur (observer)
E) Aucun de ceux-ci
2 avril 2009 ANASKA – certification PHP 28
Participez ! Prenez un bulletin de réponse
Question 12
Dériver PDO pour utiliser vos propres classes, vous impose (3 réponses) :
A) D'étendre la classe PDOStatement
B) D'utiliser le paramètre PDO::ATTR_STATEMENT_CLASS
C) D'appeler PDO::setStatementClass()
D) D'étendre la classe PDO
E) D'utiliser le paramètre PDO::ATTR_USE_CLASS
2 avril 2009 ANASKA – certification PHP 29
Participez ! Prenez un bulletin de réponse
Corrigeons
Nous allons maintenant livrer la correction
2 avril 2009 ANASKA – certification PHP 30
Participez ! Prenez un bulletin de réponse
Solution Question 9
Pour détruire une variable dans une session PHP, qu'utiliseriez-vous ?
A) unset() sur la variable dans $HTTP_SESSION_VARS
B) Utiliser session_destroy()
C) Utiliser session_unset()
D) unset() sur la variable dans $_SESSION
E) Toutes les options ci-dessus
2 avril 2009 ANASKA – certification PHP 31
Participez ! Prenez un bulletin de réponse
Solution Question 10
Parmi les sources de données ci-après, lesquelles peuvent être
considérées comme sécurisées ?
A) $_ENV
B) $_GET
C) $_SERVER
D) $_COOKIE
E) Aucune
2 avril 2009 ANASKA – certification PHP 32
Participez ! Prenez un bulletin de réponse
Solution Question 11
Quel design pattern est utilisé ici ?
<?php
class MyClassBuilder {
public function build() {
return new MyClass();
}
}
A) Monteur (builder)
B) Fabrique (factory)
C) Singleton
D) Observateur (observer)
E) Aucun de ceux-ci
2 avril 2009 ANASKA – certification PHP 33
Participez ! Prenez un bulletin de réponse
Solution Question 12
Dériver PDO pour utiliser vos propres classes, vous impose (3 réponses) :
A) D'étendre la classe PDOStatement
B) D'utiliser le paramètre PDO::ATTR_STATEMENT_CLASS
C) D'appeler PDO::setStatementClass()
D) D'étendre la classe PDO
E) D'utiliser le paramètre PDO::ATTR_USE_CLASS
2 avril 2009 ANASKA – certification PHP 34
Participez ! Prenez un bulletin de réponse
Question 13
Soit le code PHP4 suivant :
<?php
If ($obj1 === $obj2) {
// il se passe des choses ici
}
?>
Quels sont les éventuels problèmes de compatibilité que l'on aurait en PHP5
afin que ce code fasse la même chose qu'en PHP4 ?
A) Ce code renvoie une erreur en PHP4
B) $obj1 et $obj2 doivent avoir les mêmes valeurs d'attributs en PHP5
C) $obj1 et $obj2 doivent représenter la même instance en PHP5
D) Il n'y a pas de problème de compatibilité
2 avril 2009 ANASKA – certification PHP 35
Participez ! Prenez un bulletin de réponse
Question 14
Le typage objet et le mot \"instanceof\" peuvent être utilisées pour vérifier
quels impacts sur les variables (3 réponses)?
A) Si elles sont des instances d'une classe particulière
B) Si elles sont des instances d'une classe fille particulière
C) Si elles représentent des classes abstraites
D) Si elles sont des instances d'une classe mère particulière
E) Si elles sont des instances d'une classe implémentant une interface particulière
2 avril 2009 ANASKA – certification PHP 36
Participez ! Prenez un bulletin de réponse
Question 15
La méthode _____________ peut être utilisée sur un objet SimpleXML pour
retourner tous ses enfants
???
2 avril 2009 ANASKA – certification PHP 37
Participez ! Prenez un bulletin de réponse
Question 16
Quelles valeurs de $user et $pass vont modifier la sémantique de la requête ci-après ?
<?php
$query = \"UPDATE users SET password='$pass' WHERE user='$user'\";
A) $user = foobar\\' WHERE user='admin';
B) $pass = foobar' WHERE user='admin' --;
C) $user = foobar\\' WHERE user='admin';
D) $pass = \\\"foobar\\\" WHERE
$user = \\\"admin\\\";
E) Aucune
2 avril 2009 ANASKA – certification PHP 38
Participez ! Prenez un bulletin de réponse
Corrigeons
Nous allons maintenant livrer la correction
2 avril 2009 ANASKA – certification PHP 39
Participez ! Prenez un bulletin de réponse
Solution Question 13
Soit le code PHP4 suivant :
<?php
If ($obj1 === $obj2) {
// il se passe des choses ici
}
?>
Quels sont les éventuels problèmes de compatibilité que l'on aurait en PHP5
afin que ce code fasse la même chose qu'en PHP4 ?
A) Ce code renvoie une erreur en PHP4
B) $obj1 et $obj2 doivent avoir les mêmes valeurs d'attributs en PHP5
C) $obj1 et $obj2 doivent représenter la même instance en PHP5
D) Il n'y a pas de problème de compatibilité
2 avril 2009 ANASKA – certification PHP 40
Participez ! Prenez un bulletin de réponse
Solution Question 14
Le typage objet et le mot \"instanceof\" peuvent être utilisées pour vérifier
quels impacts sur les variables (3 réponses)?
A) Si elles sont des instances d'une classe particulière
B) Si elles sont des instances d'une classe fille particulière
C) Si elles représentent des classes abstraites
D) Si elles sont des instances d'une classe mère particulière
E) Si elles sont des instances d'une classe implémentant une interface
particulière
2 avril 2009 ANASKA – certification PHP 41
Participez ! Prenez un bulletin de réponse
Solution Question 15
La méthode _____________ peut être utilisée sur un objet SimpleXML pour
retourner tous ses enfants
children
2 avril 2009 ANASKA – certification PHP 42
Participez ! Prenez un bulletin de réponse
Solution Question 16
Quelles valeurs de $user et $pass vont modifier la sémantique de la requête ci-après ?
<?php
$query = \"UPDATE users SET password='$pass' WHERE user='$user'\";
A) $user = foobar\\' WHERE user='admin';
B) $pass=foobar' WHERE user='admin' --;
C) $user = foobar\\' WHERE user='admin';
D) $pass = \\\"foobar\\\" WHERE
$user = \\\"admin\\\";
E) Aucune
2 avril 2009 ANASKA – certification PHP 43
Participez ! Prenez un bulletin de réponse
Question 17
Quelle est la meilleure manière de couper une chaine selon le motif \"-=-\"; ?
A) str_split($string, strpos($string, \"-=-\"))
B) preg_split(\"-=-\", $string)
C) explode(\"-=-\", $string)
D) Elles sont toutes égales
2 avril 2009 ANASKA – certification PHP 44
Participez ! Prenez un bulletin de réponse
Question 18
Dans une application à haute charge, SQLite pourrait être
utile pour quels types de tâches ?
A) Toute tâche
B) SQLite ne devrait pas être utilisé en environnement à forte charge
C) SQLite ne devrait être utilisé que pour des bases en mémoire
D) Pour la gestion des sessions
E) Pour des opérations de lecture uniquement
2 avril 2009 ANASKA – certification PHP 45
Participez ! Prenez un bulletin de réponse
Question 19
Quelle est la meilleure technique pour se prémunir des problèmes de
sécurité \"requêtes inter-sites\" (CSRF Cross Site Request Forgeries) ?
A) Interdire les requête depuis des hôtes externes
B) Ajouter un jeton secret à tous les formulaires
C) Mettre à off allow_url_fopen dans php.ini
D) Filtrer toutes les sorties
E) Filtrer toutes les entrées
2 avril 2009 ANASKA – certification PHP 46
Participez ! Prenez un bulletin de réponse
Question 20
Par quoi remplacer les ?????? pour créer un fichier foo.gz
compressé par Zlib avec un niveau de compression 9 ?
<?php
$file = '??????????';
$fr = fopen($file, 'wb9');
fwrite($fr, $data);
fclose($fr);
?>
A) gzip://foo.gz?level=9
B) compress.zip://foo.gz?level=9
C) compress.zlib://foo.gz
D) compress.gzip://foo.gz?level=9
E) zlib://foo.gz
2 avril 2009 ANASKA – certification PHP 47
Participez ! Prenez un bulletin de réponse
Corrigeons
Nous allons maintenant livrer la correction
2 avril 2009 ANASKA – certification PHP 48
Participez ! Prenez un bulletin de réponse
Solution Question 17
Quelle est la meilleure manière de couper une chaine selon le motif \"-=-\"; ?
A) str_split($string, strpos($string, \"-=-\"))
B) preg_split(\"-=-\", $string)
C) explode(\"-=-\", $string)
D) Elles sont toutes égales
2 avril 2009 ANASKA – certification PHP 49
Participez ! Prenez un bulletin de réponse
Solution Question 18
Dans une application à haute charge, SQLite pourrait être
utile pour quels types de tâches ?
A) Toute tâche
B) SQLite ne devrait pas être utilisé en environnement à forte charge
C) SQLite ne devrait être utilisé que pour des bases en mémoire
D) Pour la gestion des sessions
E) Pour des opérations de lecture uniquement
2 avril 2009 ANASKA – certification PHP 50
Participez ! Prenez un bulletin de réponse
Solution Question 19
Quelle est la meilleure technique pour se prémunir des problèmes de
sécurité \"requêtes inter-sites\" (CSRF Cross Site Request Forgeries) ?
A) Interdire les requête depuis des hôtes externes
B) Ajouter un jeton secret à tous les formulaires
C) Mettre à off allow_url_fopen dans php.ini
D) Filtrer toutes les sorties
E) Filtrer toutes les entrées
2 avril 2009 ANASKA – certification PHP 51
Participez ! Prenez un bulletin de réponse
Solution Question 20
Par quoi remplacer les ?????? pour créer un fichier foo.gz
compressé par Zlib avec un niveau de compression 9 ?
<?php
$file = '??????????';
$fr = fopen($file, 'wb9');
fwrite($fr, $data);
fclose($fr);
?>
A) gzip://foo.gz?level=9
B) compress.zip://foo.gz?level=9
C) compress.zlib://foo.gz
D) compress.gzip://foo.gz?level=9
E) zlib://foo.gz
2 avril 2009 ANASKA – certification PHP 52
Participez ! Prenez un bulletin de réponse
Certification PHP : Conclusions
Niveau élevé
Personnes ayant déjà une expérience web
PHP, mais aussi réseau et Web général
Moitié pratique / Moitié théorique
Rassure le recruteur que le candidat
Sera capable de s'adapter à n'importe quel type de projet
PHP
Anaska assure des formations certification
2 avril 2009 ANASKA – certification PHP 53
Participez ! Prenez un bulletin de réponse
0 comments
Post a comment