Parfois, il peut être utile d'obtenir une exception au lieu d'une erreur de type WARNING lorsque l'on tente en PHP d'utiliser un fichier inexistant à l'aide des instructions include ou include_once.

Pour y parvenir, le développeur a souvent recours à l'une des deux solutions suivantes :

  1. Soit il teste l'existence du fichier avant de l'inclure et lance une exception si le fichier demandé n'existe pas ;
  2. Soit il défini un gestionnaire d'erreurs qui transforme toutes les erreurs en exception ;

J'avoue ne pas être fan de la première, qui a l'inconvénient de ne pas gérer le cas ou le fichier est supprimé entre le moment ou son existence est vérifié et le moment ou il est effectivement inclus.

Certes, dans la grande majorité des cas, cette situation de compétition n'arrivera jamais, mais la probabilité existe pourtant bel et bien et devrait donc être gérée correctement.

Je ne suis pas non plus un adepte de la seconde car je ne désire pas forcément que toutes les erreurs générées par mon code soit transformées en exception.

Et en l'occurrence, je ne veux générer une exception uniquement que lorsque le fichier devant être inclus est introuvable.

J'ai donc cherché une alternative à ces deux solutions prenant en compte à la fois la situation de compétition et le fait que je ne veux une exception que lorsque le fichier demandé n'existe pas.