La Programmation Orienté Objet en language PHP
Qu'est-ce que le Design Pattern Observer?
C'est un patron de conception qui nous permet de mettre sur écoute un objet afin qu'il modifie d'autres objets lors d'un événement précis.
Peut-on utiliser les closures dans le design pattern Observer?
Oui
Quel est le plus gros ordinateur d'Apple?
Le Big Mac
Que veut dire en anglais les initiales
DIC
Dependency Injection Container
Lorsque l'on utilise Addendum pour annoter les commentaires, toute annotation à une valeur.
Les annotations sont-elles des classes?
Oui, avec Addendum, toutes les annotations sont des classes héritant d'une classe de base Annotation.
Si l'on souhaite ajouter l'annotation @Table à notre classe Personnage pour spécifier à quelle table un objet Personnage correspond, alors il faut au préalable créer une classe Table.
Que veut dire l'acronyme récursif
PHP
?
PHP Hypertext Preprocessor
Un acronyme récursif est un acronyme qui fait référence à lui même.
A l'origine PHP voulait dire Personnal Home Page.
Qu'est-ce que le language
PHP
?
C'est un language de script Open Source executé côté serveur.
Il permet, entre autre, d'écrire des pages web dynamiques.
Il s'intègre facilement dans des pages HTML.
Sa syntaxe est empruntée au languages C, Java et Perl.
Quelles sont les 3 classes qu'Addendum propose pour exploiter les annotations situées dans les commentaires?
ReflectionAnnotedClass
ReflectionAnnotedMethod
ReflectionAnnotedProperty
Elles étendent respectivement
Quelles recommendations de codage, tout développeur PHP est censé suivre?
Les PSR.
PHP Standards Recommendations
Quelle PSR décrit les spécifications pour l'autoloading?
PSR-4: Autoloader
Quelle PSR spécifie les règles standards d'écriture du code PHP?
PSR-1: Basic Coding Standard
La PSR-1 nous recommende-t-elle d'écrire le nom des classes en camelCase?
Non, en StudlyCaps.
La PSR-1 nous recommande-t-elle d'écrire le nom des méthodes en StudlyCase?
Non, en camelCase.
La PSR-1 nous recommande-t-elle d'utiliser seulement deux types de balises PHP?
Oui
<?php ?>
et
<?= =>
Quel code doit-on parfois ajouter en haut de notre page php afin que notre texte puisse afficher correctement les accents?
header('Content-Type: text/html; charset=UTF-8');
D'Aprés la PSR-1 quel charset doit-on utiliser dans nos pages php?
UTF-8 sans BOM
BOM (Byte Order Marks)
Le BOM est la séquence de 3 bytes (0xEF,0xBB,0xBF) située en début de fichier qui indique au client que le fichier est encodé en UTF-8.
Quels caractères doit-on utiliser pour les constantes d'aprés la recommendation PSR-1?
L'Upper Case et des underscores pour séparer plusieurs mots.
La recommendation PSR-1 nous recommande-t-elle un jeux de caractères pour les propriétés?
Non
On peut utiliser le StudlyCaps ou le camelCase avec ou sans l'underscore.
La seule recommendation est qu'il faut être constant une fois un modèle choisi.
D'aprés la recommendation PSR-1, à quels termes, le mot 'class' peut-il faire référence?
La recommendation PSR-4:Autoloader est-elle obsolète par rapport à la PSR-0?
Non
La PSR-0 est obsolète et la PSR-4 est à suivre.
Expliquez le code suivant
On crée une instance de 'ReflectionAnnotedClass' en passant en argument la classe 'A' afin de pouvoir connaître la valeur de son annotation 'Table' en utilisant les méthodes 'getAnnotation' et 'value'.
Citez les 4 méthodes
en relation avec les annotations,
qui sont communes
aux 3 classes d'addendum suivantes:
ReflectionAnnotedClass
ReflectionAnnotedMethod
ReflectionAnnotedProperty
hasAnnotation($class)
getAnnotation($annotation)
getAnnotations()
getAllAnnotations($restriction = false)
Que renvoie la méthode getAnnotation() d'une part et la méthode value() d'autre part?
Comment définir un tableau de valeur 'key => value' pour une annotation de classe?
Mettre la valeur de l'annotation entre accolades et séparer les valeurs du tableau par des virgules.
Expliquez l'annotation.
C'est une annotation à plusieurs valeurs.
On donne un nom à chaque valeur qui est séparée de la suivante par une virgule.
Chacune de ses valeurs est stockée dans un attribut de la classe représentant l'annotation.
Chaque nom d'attribut correspond au nom de chaque valeur.
Citez les différentes annotations possibles avec Addendum.
Pourquoi utiliser l'UML pour son application?
Pour modéliser son application afin de mieux s'y retrouver.
UML = Unified Modeling Language
Quand parle-t-on d'association entre une classe A et B?
Il y a association quand une classe A se sert d'une classe B.
Quand a-t-on une agrégation entre une classe A et B?
Il y a agrégation quand la classe A possède au moins un attribut qui est une instance d'une autre classe B.
L'Agrégation est une association particulière.
Quand a-t-on une composition entre une classe A et B?
Si toutes les instances de B contenues dans A sont supprimées lorsque A est supprimée.
Une composition est une agrégation particulière.
Expliquez les nuances entre:
La Composition est une Agrégation particulière.
L'agrégation est une Association particulière.
Il y a association quand une classe A utilise une classe B.
Il y a Agrégation quand une classe A possède une ou plusieurs intances d'une classe B.
Il y a Composition quand toutes les instances de B contenues dans A sont supprimées lorsque A est supprimée.
Quel signe précède les attributs ou méthodes publiques?
+
Quel signe précède les attributs ou méthodes protégés?
#
Quel signe précède les attributs ou méthodes privés?
-
Quelle police de caractère utilise-t-on pour les méthodes Abstraites?
Italique
Quelle police de caractère utilise-t-on pour les méthodes normales, ni abstraites ni statiques?
Une police normale.
Les méthodes et attributs statiques sont-ils surlignés?
Oui
Représentez un diagramme UML entre un corps humain, un poumon, un rein et un estomac.
Quel mot précède le nom des méthodes finales dans les diagrammes UML?
<<leaf>>
Quelle est la direction et le type de flêche utilisée entre une classe fille et sa mère?
Une flêche pleine allant de la fille vers la mère.
Quel mot précède le nom d'une interface dans un diagramme UML?
<<interface>>
Quelle est la direction et le type de flêche utilisée entre une classe et son interface?
Une flêche en pointillée allant de la classe vers l'interface.
Représentez le diagramme UML d'une association entre une classe NewsManager qui gère plusieurs classes News.
Représentez le diagramme UML d'une Agrégation entre une classe NewsCollection qui organise plusieurs classes News.
Représentez le diagramme UML d'une Composition entre une classe NewsCollection qui organise plusieurs classes News.
Quel est l'utilité du logiciel Dia?
Une classe est-elle un modèle à partir duquel on définit un objet?
Oui
Une instance de classe est un objet.
Peut-on dire que la notion d'héritage nous permet de factoriser des traitements communs à plusieurs classes, dans une classe mère?
Oui
Qu'est ce que la SPL (Standard PHP Library)?
C'est une extention non désactivable depuis PHP 5.3 qui regroupe des fonctions, classes et interfaces trés performantes.
Quelles sont les répercutions si on modifie un attribut statique d'une classe?
La modification se répercute sur tous les objets de cette classe.