Backend PHP (BPH) Help

QCM Final

Le rendu

Créez un fichier nom-prenom-qcm-bph.txt (en remplaçant nom et prénom par les vôtres) pour y noter vos réponses sous la forme :

Question 1 : Réponse A

Une fois votre QCM terminé, envoyez un mail dont l'objet sera [Coda BPH] Prénom Nom QCM à l'adresse suivante :

rendu@kornog.bzh

avec le fichier en pièce-jointe.

Les consignes

Vous avez 1h30 pour répondre à 20 questions + 1 question bonus.

Vous avez le droit à internet, le cours, votre IDE, Google et toutes les ressources présentes dessus (oui y compris les IA), mais vous n'avez pas le droit de communiquer avec d'autres humains.

Question 1

Qui a créé PHP ?

  • A. Linus Torvalds

  • B. Grace Hopper

  • C. Rasmus Lerdorf

  • D. Ada Lovelace

Question 2

<?php $animals = ["Cats", "Dogs", "Birds", "Spiders"]; echo $animals; ?>

Que va faire le code ci-dessus :

  • A. Afficher le nombre d'animaux dans le tableau

  • B. Afficher un warning

  • C. Afficher le premier animal du tableau

  • D. Afficher le dernier animal du tableau

Question 3

<?php $age = 17.5; if((int)$age > 17) { echo "Adulte"; } else { echo "Enfant"; } ?>

Que va faire le code ci-dessus :

  • A. Afficher Adulte

  • B. Afficher Enfant

  • C. Afficher une erreur

  • D. Afficher un warning

Question 4

<?php $x = "4"; $y = 2; echo $x + $y; ?>

Que va faire le code ci-dessus :

  • A. Afficher 42

  • B. Afficher 6

  • C. Afficher une erreur

  • D. Rien

Question 5

<?php function hello(string $message) : void { echo "$message !"; } $funcName = "hello"; $funcName("Ceci est un message"); ?>

Que va faire le code ci-dessus :

  • A. Afficher hello

  • B. Afficher Ceci est un message

  • C. Afficher Ceci est un message !

  • D. Rien

Question 6

<?php class User { public function __construct(private string $username) { } } $user = new User("Gaston"); echo $user->username;

Que va faire le code ci-dessus :

  • A. Afficher Gaston

  • B. Afficher une erreur

  • C. Instancier un Userpuis afficher Gaston

  • D. Rien

Question 7

En Programmation Orientée Objet, comment appelle t'on une méthode publique d'une classe qui permet de lire la valeur d'un attribut privé ?

  • A. Un setter

  • B. Un getter

  • C. Le constructeur

  • D. Une méthode fléchée

Question 8

<?php class User { private function __construct(private string $username) { } public function getUsername() : string { return $this->username; } } $user = new User("Gaston"); echo $user->username;

Que va faire le code ci-dessus :

  • A. Instancier un Userpuis afficher Gaston

  • B. Rien

  • C. Afficher Gaston

  • D. Afficher une erreur

Question 9

abstract class Voiture { public function __construct(private string $modele, private string $marque) { } } class VoitureElectrique extends Voiture { public function __construct(private string $modele, private string $marque) { parent::__construct($modele, $marque); } } class VoitureThermique extends Voiture { public function __construct(private string $modele, private string $marque) { parent::__construct($modele, $marque); } }

En me basant sur le code ci-dessus, comment puis-je instancier une VoitureElectrique?

  • A. $voiture = new Voiture()::setType('Electrique');

  • B. $voiture = new Voiture::Electrique();

  • C. $voiture = new VoitureElectrique();

  • D. $voiture = new VoitureElectrique('Zoe', 'Renault');

Question 10

class Category { public function __construct(private string $name) { } public function getName() : string { return $this->name; } } class Post { public function __construct(private string $title, private Category $category) { } public function getTitle() : string { return $this->title; } public function getCategory() : Category { return $this->category; } } $post = new Post("Le titre de mon post", new Category("Le nom de ma catégorie"));

En me basant sur le code ci-dessus, comment puis-je afficher le nom de la Category?

  • A. echo $post->getCategoryTitle();

  • B. echo $post->getCategory()->getTitle();

  • C. echo $post->getCategory()->getName();

  • D. echo $post->category->getTitle();

Question 11

Que signifie MVC ?

  • A. Modélisation et Visualisation des Classes

  • B. Migraines Violentes et Contrariantes

  • C. Model View Controller

  • D. Madeleine Viennoiserie Cookie

Question 12

Quelle est la règle d'or du routing MVC ?

  • A. Une route pour les gouverner toutes

  • B. Une route === Une méthode de Controller

  • C. Pas de route sans paramètre

  • D. Une route correspond toujours à un template

Question 13

class Controller extends AbstractController { // ... public function home() : void { $query = $this->db->prepare('SELECT * FROM users'); $parameters = [ ]; $query->execute($parameters); $result = $query->fetchAll(PDO::FETCH_ASSOC); } // ... }

Quel est le problème du code ci-dessus ?

  • A. La classe n'hérite pas d'AbstractManager

  • B. La méthode ne render rien

  • C. On utilise pas le résultat de la requête

  • D. Ce code ne respecte pas le MVC

Question 14

En MVC, comment appelle t'on généralement une classe qui manipule la base de données ?

  • A. Un Manager

  • B. Un template

  • C. Un Router

  • D. Un Controller

Question 15

class Controller { public function home() : void { $this->render("home", []); } } $ctrl = new Controller(); $ctrl->home();

Que va faire le code ci-dessus ?

  • A. Afficher un template sans lui passer de valeur

  • B. Afficher le template home

  • C. Rien

  • D. Afficher une erreur

Question 16

Que dois-je faire pour pouvoir utiliser les sessions dans mon projet PHP ?

  • A. Avoir configuré mon serveur local

  • B. Avoir stoppé Apache

  • C. Appeler la fonction session_start()

  • D. Rien

Question 17

Quelle commande dois-je faire pour que composer ajoute une librairie aux dépendances de mon projet ?

  • A. composer require <librairie>

  • B. composer dump-autoload

  • C. composer update

  • D. composer install

Question 18

Qu'est-ce que Twig ?

  • A. Du sucre syntaxique

  • B. Un framework CSS

  • C. Un moteur de template

  • D. Un ORM

Question 19

En PHP, puis-je utiliser un fichier .env?

  • A. Non

  • B. Oui mais je dois utiliser une librairie externe

  • C. Oui mais je dois faire attention à mon impact environnemental

  • D. Oui mais uniquement si j'utilise le MVC

Question 20

Que signifie API ?

  • A. Application Protégée des Intrusions

  • B. Applet de Programmation Intuitif

  • C. Accès Protégé à l'Information

  • D. Application Programming Interface

Question Bonus

Quelle est la réponse ?

  • A. Obi-Wan Kenobi

  • B. 42

  • C. Live long and prosper

  • D. La réponse D

11 December 2025