Publicidad

autoload de ficheros usando namespaces en php


Por Alex el 08/08/2023 , Comentar el artículo

Comparte este artículo:      




Para utilizar en PHP una clase en un fichero hay que incluirlo manualmente con la sentencia include o require poniendo su ruta y nombre completos uno a uno ... pero esto podemos hacerlo con una función, spl_autoload_register, si utilizamos namespaces.


En el ejemplo que voy hacer tenemos la siguiente estructura de ficheros:

Resultado final directorio

Vemos que hay dos directorios con ficheros y un fichero init.php en el directorio raíz que es donde cargaremos el resto de ficheros para poder utilizarlos en la aplicación.

En los tres ficheros PruebasController.php, ErrorClass.php y PDO.php solo hay una función que escribe un testo por pantalla. Podeis descargar el código desde el github https://github.com/depruebas/autoload-php-files

Una vez explicado esto vamos con el fichero interesante donde se cargan las clases a través de su namespace, init.php:

  use Controllers\PruebasController;
  use libraries\ErrorClass;
  use libraries\PDO;

  spl_autoload_register( function( $class){
    require_once dirname(__FILE__) . "/" . str_replace( "\\", "/", $class) . ".php";
  });

  $pruebas = new PruebasController();
  $pruebas->test();

  $error = new ErrorClass();
  $error->test();

  $pdo = new PDO();
  $pdo->test();


Como se puede ver al principio del fichero se declaran los namespaces que se van a utilizar con el comando use y despues con la función spl_autoload_register se incluyen en el proyecto.

Y el código que sigue son unas pruebas para ver que todo ha funcionado correctamente. El resultado:

Resultado final autoload php

Y esto es todo, feliz programming
Saludos
Alex.



Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.