Skip to Content

Quiz 1 — Fondamentaux & PHP

1. « Symfony » désigne deux choses : lesquelles ?

Réponse

Une collection de composants PHP réutilisables et un framework full-stack qui les assemble.

2. Quelle est la licence de Symfony, et pourquoi est-ce important pour vendre un produit ?

Réponse

MIT (permissive) : on peut bâtir du propriétaire par-dessus, sans obligation d’ouvrir son code (contrairement au GPL).

3. Pourquoi 7.4 LTS et 8.0 sont-elles sorties le même jour ?

Réponse

La dernière mineure d’une majeure (X.4, LTS) sort avec la première de la suivante (X+1.0) ; 8.0 = 7.4 sans le code déprécié.

4. Combien de temps une version LTS est-elle supportée ?

Réponse

~3 ans de correctifs de bugs, ~4 ans de correctifs de sécurité.

5. Qu’est-ce que Composer, et son équivalent JS ?

Réponse

Le gestionnaire de dépendances PHP (≈ npm/pnpm) ; le registre est Packagist (≈ npmjs.com).

6. Que fait Symfony Flex de plus qu’installer un paquet ?

Réponse

Il applique une recipe : configuration automatique (fichiers de config, .env, enregistrement du bundle). « Installer = configurer. »

7. Où vit le code applicatif dans une app Symfony moderne ?

Réponse

Dans src/ sous le namespace App\ — plus dans un AppBundle.

8. Quel opérateur concatène deux chaînes en PHP ?

Réponse

Le point . ('a' . 'b'). + = addition uniquement.

9. Différence entre -> et :: ?

Réponse

-> = membre d’instance ; :: = membre statique, constante ou cas d’enum.

10. Que fait declare(strict_types=1) ?

Réponse

Il désactive la coercition des types : PHP exige le type exact et lève une TypeError sinon. À mettre en tête de chaque fichier.

11. Enum pure vs backed ?

Réponse

Pure = cas nommés seulement ; backed = chaque cas a une valeur scalaire (nécessaire pour persister/sérialiser).

12. Que font from() et tryFrom() sur une enum ?

Réponse

Convertir une valeur en cas ; from() lève si inconnue, tryFrom() renvoie null.

13. Un attribut PHP « fait »-il quelque chose par lui-même ?

Réponse

Non : c’est une métadonnée passive ; un lecteur (Symfony, Doctrine…) l’interprète via réflexion.

14. Qu’apporte la promotion de constructeur ?

Réponse

Elle déclare et assigne les propriétés directement dans les paramètres du constructeur (fin du boilerplate).

15. Que fait l’opérateur ?-> ?

Réponse

Le nullsafe : court-circuite à null dès qu’un maillon de la chaîne est null.

16. PHP est-il à typage nominal ou structurel ?

Réponse

Nominal : la compatibilité dépend du nom du type → implémenter l’interface (pas de duck typing structurel comme en TS).

17. Comment PHP « importe »-t-il du code ?

Réponse

Par namespace + use, résolus par l’autoload PSR-4 (namespace → fichier). Pas de require manuel.

18. PHP a-t-il async/await ? Comment gère-t-on l’arrière-plan ?

Réponse

Non : code synchrone par requête. Le différé passe par Messenger (workers).

19. Quelle commande vérifie que PHP est prêt pour Symfony ?

Réponse

symfony check:requirements.

20. --webapp vs skeleton minimal ?

Réponse

--webapp installe le pack full-stack (Twig, sécurité, forms…) ; le skeleton minimal est fait pour une API, on ajoute à la demande.


Quiz suivant : Quiz 2 — Cœur & Doctrine.