Y compris un ensemble de répertoire en PHP ou Générique pour une utilisation en PHP include?
J'ai un interpréteur de commande en php. Il vit à l'intérieur de commandes répertoire et les besoins d'accès à toutes les commandes dans le fichier de commande. Actuellement j'appelle requièrent une fois sur chaque commande.
require_once('CommandA.php');
require_once('CommandB.php');
require_once('CommandC.php');
class Interpreter {
//Interprets input and calls the required commands.
}
Est là d'une certaine manière à inclure l'ensemble de ces commandes avec un seul require_once? J'ai un problème similaire en de nombreux autres endroits dans mon code (avec des usines, des constructeurs, d'autres interprètes). Il n'y a rien, mais les commandes dans ce répertoire et l'interprète des besoins de tous les autres fichiers dans le répertoire. Est-il un générique qui peut être utilisé dans le besoin? Tels que:
require_once('*.php');
class Interpreter { //etc }
Est-il un autre moyen de contourner ce qui n'implique pas vingt lignes au début du fichier?
Vous devez vous connecter pour publier un commentaire.
Pourquoi voulez-vous faire? N'est-il pas une meilleure solution pour inclure uniquement la bibliothèque, quand le besoin d'augmenter la vitesse et réduire l'empreinte écologique?
Quelque chose comme ceci:
Je serais prudent avec quelque chose comme ça, bien que toujours préférer "manuellement" y compris les fichiers. Si c'est trop lourd, peut-être que certains le refactoring est dans l'ordre. Une autre solution peut être de chargement automatique des classes.
Vous ne pouvez pas require_once un générique, mais vous pouvez par programmation de rechercher tous les fichiers dans ce répertoire puis en faire la demande dans une boucle
http://php.net/glob
Vous pouvez inclure tous les fichiers en utilisant foreach ()
Stocker tous les fichiers de nom dans le tableau.
C'est 2015 maintenant, alors vous êtes probablement en cours d'exécution PHP >= 5. Si donc, comme mentionné à quelques reprises ci-dessus, PHP autoload de capacité est une bonne solution, sans doute la meilleure. Il a été créé spécifiquement de sorte que vous n'aurez pas à écrire une fonction d'utilité pour le chargement automatique. Cependant, comme mentionné dans le PHP docs, __autoload n'est plus recommandé et peut être amorti dans les futures versions. Aussi longtemps que vous êtes à l'aide de PHP >= 5.1.2, l'utilisation spl_autoload_register à la place.