Entretien PHP : n'aie pas peur, prépare-toi
\n\nUn entretien pour un poste de développeur PHP n'est pas un examen sur des tickets, mais un dialogue. Mais un dialogue où l'on attend de vous non seulement « je connais PHP », mais une compréhension de la façon dont le langage fonctionne sous le capot. La préparation à un entretien PHP n'est pas du par cœur de définitions, mais une analyse de cas réels.
\n\nDans cet article, nous n'allons pas énumérer une centaine de questions. À la place, je vais vous montrer un modèle de pensée : comment répondre aux questions, comment écrire du code et sur quoi porter votre attention pour que l'intervieweur dise « waouh ». C'est parti.
\n\n1. Bases de PHP : ce qu'il faut absolument savoir
\n\nCommençons par les bases. Même si vous postulez pour un poste Senior, des questions sur les bases peuvent surgir. Voici les trois piliers sur lesquels repose un entretien PHP :
\n\n- \n
- Types de données et conversion de types — comment fonctionne
==vs===, qu'est-ce questrict_types. \n - Tableaux superglobaux —
$_GET,$_POST,$_SERVER,$_SESSION. \n - Travail avec les tableaux —
array_map,array_filter,array_reduce. \n
Exemple de question : « Que va afficher ce code ? ».
\n\n<?php\n$a = '5';\n$b = 5;\nvar_dump($a == $b); // bool(true) — comparaison non stricte\nvar_dump($a === $b); // bool(false) — comparaison stricte\n?>\n\nSouvenez-vous : l'entretien PHP junior repose souvent sur ce genre de pièges. Ne vous y laissez pas prendre.
\n\n2. POO en PHP : pas seulement « classe et objet »
\n\nLes questions PHP lors d'un entretien incluent toujours la POO. Mais au lieu d'énumérer les trois piliers (encapsulation, héritage, polymorphisme), montrez comment vous les utilisez.
\n\nExemple : on vous demandera à propos des interfaces et des classes abstraites. Ne dites pas « une interface est un contrat ». Montrez plutôt du code :
\n\n<?php\ninterface PaymentGateway {\n public function pay(float $amount): bool;\n}\n\nclass StripeGateway implements PaymentGateway {\n public function pay(float $amount): bool {\n // logique de paiement via Stripe\n return true;\n }\n}\n\nclass PayPalGateway implements PaymentGateway {\n public function pay(float $amount): bool {\n // logique de paiement via PayPal\n return true;\n }\n}\n\nfunction processOrder(PaymentGateway $gateway, float $total) {\n if ($gateway->pay($total)) {\n echo "Paiement réussi";\n }\n}\n?>\n\nUne telle réponse montre que vous comprenez le principe de substitution de Barbara Liskov et que vous savez concevoir des systèmes flexibles. Cela vous donne immédiatement +100 en karma lors d'un entretien PHP middle.
\n\n3. Travail avec les bases de données : SQL et PDO
\n\nAucun entretien PHP ne se passe sans questions sur MySQL. Souvenez-vous : n'utilisez jamais les fonctions mysql_* — elles ont été supprimées de PHP 7. Utilisez PDO ou mysqli.
\n\nTâche typique : « Écrivez une requête sécurisée à la base de données ».
\n\n<?php\n$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');\n$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');\n$stmt->execute(['email' => $email]);\n$user = $stmt->fetch(PDO::FETCH_ASSOC);\n?>\n\nPourquoi est-ce important ? Parce que les injections SQL sont une erreur classique des juniors. Montrez que vous connaissez les prepared statements.
\n\nUne autre question fréquente concerne les JOIN. Soyez prêt à expliquer la différence entre INNER, LEFT, RIGHT et FULL JOIN. Et donnez impérativement un exemple de quand utiliser chacun.
\n\n4. Exercices typiques lors d'un entretien PHP
\n\nLes exercices PHP ne sont pas que de la théorie. On peut vous demander du live coding. Voici trois types d'exercices souvent rencontrés :
\n\n4.1. Exercice sur les tableaux
\n« Écrivez une fonction qui regroupe un tableau d'objets par clé