ruta - ¿Incluye un directorio completo en PHP o comodín para usar en PHP Include?
php indicar directorio raiz (5)
¿Por qué quieres hacer eso? ¿No es una mejor solución incluir solo la biblioteca cuando la necesite para aumentar la velocidad y reducir la huella?
Algo como esto:
Class Interpreter
{
public function __construct($command = null)
{
$file = ''Command''.$command.''.php'';
if (!file_exists($file) {
throw new Exception(''Invalid command passed to constructor'');
}
include_once $file;
// do whatever else you want here.
}
}
Tengo un intérprete de comando en php. Vive dentro del directorio de comandos y necesita acceso a cada comando en el archivo de comando. Actualmente llamo requiere una vez en cada comando.
require_once(''CommandA.php'');
require_once(''CommandB.php'');
require_once(''CommandC.php'');
class Interpreter {
// Interprets input and calls the required commands.
}
¿Hay alguna manera de incluir todos estos comandos con un solo requerimiento_uncceso? Tengo un problema similar en muchos otros lugares de mi código (con fábricas, constructores, otros intérpretes). No hay nada más que comandos en este directorio y el intérprete necesita todos los demás archivos en el directorio. ¿Hay un comodín que se puede usar en require? Como:
require_once(''*.php'');
class Interpreter { //etc }
¿Hay alguna otra forma de evitar esto que no incluya veinte líneas de incluir en la parte superior del archivo?
Es 2015 ahora, por lo que probablemente esté ejecutando PHP> = 5. Si es así, como se mencionó un par de veces más arriba, la capacidad de autocarga de PHP es una buena solución, probablemente la mejor. Fue creado específicamente para que no tenga que escribir una función de utilidad para la carga automática. Sin embargo, como se menciona en los documentos de PHP, __autoload ya no se recomienda y puede depreciarse en futuras versiones. Siempre que use PHP> = 5.1.2, use spl_autoload_register en su lugar.
No puede requerir_uncódigo comodín, pero puede buscar programáticamente todos los archivos en ese directorio y luego requerirlos en un bucle
foreach (glob("*.php") as $filename) {
require_once($filename) ;
}
Puede incluir todos los archivos usando foreach ()
Almacenar todos los nombres de los archivos en la matriz.
$array = array(''read'',''test'');
foreach ($array as $value) {
include_once $value.".php";
}
foreach (glob("*.php") as $filename) {
require_once $filename;
}
Sin embargo, tendría cuidado con algo así y siempre prefiero incluir archivos "manualmente". Si eso es demasiado engorroso, quizás sea necesario refactorizar. Otra solución puede ser autocargar clases .