De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En la programación de computadoras , la carga automática es la capacidad de cargar y vincular partes de un programa desde el almacenamiento masivo automáticamente cuando sea necesario, de modo que no se requiere que el programador defina o incluya esas partes del programa explícitamente. Muchos lenguajes de programación de alto nivel incluyen capacidades de carga automática, que sacrifican algo de velocidad de tiempo de ejecución para facilitar la codificación y la velocidad de compilación / enlace inicial.

Los sistemas de carga automática típicos interceptan llamadas a procedimientos a subrutinas no definidas . El autocargador busca a través de una ruta de directorios en el sistema de archivos de la computadora , para encontrar un archivo que contenga código fuente u objeto que defina la subrutina. Luego, el autocargador carga y vincula el archivo, y devuelve el control al programa principal para que la subrutina se ejecute como si ya se hubiera definido y vinculado antes de la llamada.

Muchos lenguajes interactivos y de alto nivel operan de esta manera. Por ejemplo, IDL incluye un buscador de ruta primitivo y Perl permite que módulos individuales determinen cómo y si debe ocurrir la carga automática. Se puede decir que el shell de Unix consiste casi en su totalidad en un autocargador (programa) , ya que su trabajo principal es buscar una ruta de directorios para cargar y ejecutar archivos de comando. En PHP 5, la funcionalidad de carga automática se activa cuando se hace referencia a una clase no definida . Una o más funciones de carga automática: implementadas como la __autoload función mágica o cualquier función registrada en el SPL autoload stack: se llama y se le da la oportunidad de definir la clase, generalmente cargando el archivo en el que está definida.

PHP [ editar ]

spl_autoload_register ( function  ( $ class )  {  $ file  =  'src /'  .  str_replace ( '\\' ,  '/' ,  $ relativa_class )  .  '.php' ;  if  ( file_exists ( $ file ))  {  require  $ file ;  } });

Enlaces externos [ editar ]