En programación informática , la carga automática es la capacidad de cargar y enlazar partes de un programa desde el almacenamiento masivo automáticamente cuando sea necesario, de modo que el programador no tenga que definir ni incluir explícitamente dichas partes. Muchos lenguajes de programación de alto nivel incluyen capacidades de carga automática, que sacrifican algo de velocidad de ejecución en aras de la facilidad de codificación y la rapidez de la compilación/enlace inicial.
Los sistemas de carga automática típicos interceptan las llamadas a procedimientos que apuntan a subrutinas no definidas . El cargador automático busca en una ruta de directorios del sistema de archivos del ordenador un archivo que contenga el código fuente o el código objeto que define la subrutina. A continuación, el cargador automático carga y enlaza el archivo, y devuelve el control al programa principal para que la subrutina se ejecute como si ya hubiera sido definida y enlazada antes de la llamada.
Muchos lenguajes interactivos y de alto nivel funcionan de esta manera. Por ejemplo, IDL incluye un buscador de rutas primitivo, y Perl permite que los módulos individuales determinen cómo y si debe ocurrir la carga automática. Se puede decir que el intérprete de comandos de Unix consiste casi en su totalidad en un cargador automático, ya que su función principal es buscar en una ruta de directorios para cargar y ejecutar archivos de comandos. En PHP 5, la funcionalidad de carga automática se activa al hacer referencia a una clase no definida . Se llama a una o más funciones de carga automática —implementadas como la __autoloadfunción mágica o cualquier función registrada en la pila de carga automática de SPL— y se les da la oportunidad de definir la clase, generalmente cargando el archivo en el que está definida.
PHP
spl_autoload_register ( function ( $class ) { $file = 'src/' . str_replace ( '\\' , '/' , $relative_class ) . '.php' ; if ( file_exists ( $file )) { require $file ; } });Enlaces externos
- Estándar de autocarga mejorado PSR-4
- Carga automática de clases en PHP
- spl_autoload_register en PHP
- Estructuras de programación