Le matin ne commence pas par un café, mais par la panique ?
\nVous savez ce qu'il y a de commun entre le café matinal d'un développeur PHP et son code ? Les deux doivent être chauds, forts et sans dépôt. Mais sérieusement, une journée type de développeur PHP, ce n'est pas une pause-thé interminable et l'écriture de scripts magiques. C'est résoudre des dizaines de problèmes chaque jour : de la lecture de code legacy à l'écriture de fonctions propres et testables. Dans cet article, nous levons le voile sur le quotidien réel d'un développeur backend PHP, analysons les problèmes typiques, montrons des exemples de code et donnons des conseils pour gagner en efficacité.
\n\n08h30 — Entrée en zone de combat
\nLa journée commence par la vérification des messageries et des emails. Mais ne lisez pas tout d'un coup. Un développeur PHP expérimenté ouvre d'abord son tableau de bord de monitoring (New Relic, Sentry ou Grafana). Si la base de données a planté pendant la nuit ou si le temps de réponse de l'API a augmenté, vous le saurez en premier. Le matin se transforme alors en extinction d'incendie.
\n\nQue faire si la production est « en panne » ?
\nPremière chose : vérifier les erreurs dans les logs. Une commande typique pour une analyse rapide :
\ntail -f /var/log/nginx/error.log | grep "PHP Fatal error"\nSouvent, le problème se résout en redémarrant PHP-FPM ou en vérifiant les droits sur le cache. Si vous voyez ceci dans les logs :
\n[error] 1234#1234: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Class "App\\Service\\PaymentGateway" not found\n...c'est que le déploiement d'hier a cassé l'autoloading de Composer. Solution : composer dump-autoload et vérifiez que tous les fichiers sont bien présents.
09h00 — Daily stand-up et planification
\nÀ 9h, c'est la réunion quotidienne. Le développeur PHP y explique ce qu'il a fait hier, ce qu'il prévoit aujourd'hui et s'il y a des blocages. Ne tournez pas autour du pot : si vous êtes bloqué sur une tâche depuis plus de 2 heures, demandez de l'aide. C'est normal.
\nAprès la réunion, place à la priorisation. Ouvrez Jira/Trello/YouTrack et choisissez 1 à 2 tâches pour la journée. Mieux vaut en faire une correctement que cinq « à l'arrache ».
\n\n10h00 — Plongée dans le code : travail sur une fonctionnalité
\nC'est le moment du travail en profondeur. Vous prenez une tâche du backlog. Supposons qu'il faille ajouter un nouvel endpoint API pour afficher la liste des commandes avec pagination. On commence non pas par le contrôleur, mais par le modèle et le repository.
\n\nExemple : écrire du code PHP propre
\nMauvaise approche : tout mettre dans une seule méthode :
\n// Mauvais\npublic function getOrders($userId, $page) {\n $query = "SELECT * FROM orders WHERE user_id = ? LIMIT ? OFFSET ?";\n // ... 50 lignes avec SQL, logique et affichage\n}\nBonne approche : séparation des responsabilités :
\n// Couche service\nclass OrderService {\n public function __construct(\n private OrderRepository $repository,\n private OrderSerializer $serializer\n ) {}\n \n public function getUserOrders(int $userId, int $page, int $perPage): array {\n $orders = $this->repository->findByUser($userId, $page, $perPage);\n return array_map(fn($order) => $this->serializer->serialize($order), $orders);\n }\n}\n\n// Repository\nclass OrderRepository {\n public function findByUser(int $userId, int $page, int $perPage): array {\n $offset = ($page - 1) * $perPage;\n return Order::where('user_id', $userId)\n ->offset($offset)\n ->limit($perPage)\n ->get()\n ->toArray();\n }\n}\nCe code est facile à tester, à maintenir et à étendre. C'est ça, le professionnalisme d'un développeur PHP.
\n\n12h00 — Déjeuner et changement de contexte
\nLe déjeuner, c'est sacré. Ne mangez pas devant votre clavier. Sortez, lisez un livre ou regardez une vidéo sur l'architecture. Le cerveau a besoin de repos. Après le déjeuner, place aux tâches moins complexes : code review, documentation, réponses aux questions des juniors.
\n\n13h30 — Code review : comment ne pas se fâcher avec un collègue
\nLe code review n'est pas une guerre. C'est un apprentissage. Quand vous vérifiez le code