Vous ne devriez jamais avoir de code dans un fichier d'inclusion qui est appelé au moment où le code est inclus. Votre fichier include ne doit contenir que des définitions de constante, de classe et de fonction. Le code est alors:
- plus prévisible
- plus facile à réutiliser
- moins susceptibles d'exposer backdoors à votre application
Bien sûr, comme toute règle il y a des exceptions, mais la seule Je peux penser à ce qui a un mérite dans ce contexte lorsque vous utilisez un auto-préfixe inclure pour modifier le comportement de l'environnement tout en ne modifiant pas délibérément le code de l'application (par exemple en utilisant un gestionnaire de session personnalisé avec un étagère application).
Vous semblez décrire un modèle de contrôleur frontal - où les demandes de fonctionnalités différentes sont d'abord routées vers le même script PHP. Le terme «templating» est généralement appliqué à l'opposé de cette architecture - où la mise en page de plusieurs scripts php séparés est gérée par un fichier d'inclusion commun.
J'ai essayé de instancier mais n'a pas pu le faire fonctionner dans mes circonstances particulières
Réessayez. Vous ne serez jamais capable de construire une application de n'importe quelle complexité sans fonctions ou classes.
Cela a été un réel problème, quand 'register_globals' était encore une chose (il y a des décennies). Mais même aujourd'hui, vous devriez penser à ce qui se passe quand quelqu'un appelle 'includepage.php' directement. Les messages d'erreur peuvent contenir des informations que vous ne souhaitez pas partager. – jh1711
Merci de m'avoir fait savoir pourquoi c'est une mauvaise pratique. Je pourrais le faire fonctionner avec des sessions aussi, mais ce n'est pas idéal. – Dolton42
Ne fais pas ça. Vous avez deux bonnes réponses sur la façon de le faire correctement. Si vous avez besoin d'une solution rapide contre les appels directs, vous pouvez simplement définir une constante dans vos pages locales et vérifier si elle est définie dans la page d'inclusion. Wordpress et al. vivre avec ce pansement pendant des années. – jh1711