Quand « appeler simplement une fonction » n’est plus si simple

DEV - 26/02
À un moment donné, dans presque tous les projets, quelque chose de petit commence à paraître plus lourd qu'il ne le devrait. Toi...

À un moment donné, dans presque tous les projets, quelque chose de petit commence à paraître plus lourd qu'il ne le devrait.

Vous commencez avec un contrôleur propre qui délègue à un gestionnaire, puis vous ajoutez la validation, puis la journalisation. Peut-être une transaction. Puis une cartographie des erreurs cohérente. Rien de dramatique, juste une croissance normale des applications.

Quelques mois plus tard, appeler un handler ne revient plus simplement à « appeler un handler ».

Certains contrôleurs valident en premier, d'autres s'appuient sur le gestionnaire. Certains interceptent les exceptions de domaine et les mappent aux réponses HTTP. D’autres les laissent bouillonner. Les travailleurs en arrière-plan se comportent légèrement différemment. Les commandes CLI font leur propre travail.

La logique métier est bonne. La sémantique d’exécution ne le est pas.

Et c’est alors que cela devient clair : invoquer un callable n’est pas simplement un appel de méthode. C’est une limite d’exécution.

Cette prise de conscience a conduit à CallableInvoker.

Les objets invocables sont devenus courants dans PHP moderne, des contrôleurs à action unique aux gestionnaires de style DDD utilisant__invoquer.

Après les avoir largement utilisés, j'ai remarqué quelque chose de subtil : ils simplifient la composition, mais ils exposent également des inc...
[Courte citation de 8% de l'article original]

Loading...