stringtranslate.com

Carga automática

En programación informática , la carga automática es la capacidad de cargar y vincular partes de un programa desde un almacenamiento masivo automáticamente cuando es necesario, de modo que el programador no tenga que definir o incluir esas partes del programa de forma explícita. Muchos lenguajes de programación de alto nivel incluyen capacidades de carga automática, que sacrifican algo de velocidad de ejecución a cambio de la facilidad de codificación y la velocidad de la compilación/vinculación inicial.

Los sistemas de carga automática típicos interceptan las llamadas a procedimientos de subrutinas no definidas . El cargador automático busca en una ruta de directorios en el sistema de archivos de la computadora un archivo que contenga el código fuente o el código objeto que define la subrutina. Luego, el cargador automático carga y vincula el archivo, y devuelve el control al programa principal para que la subrutina se ejecute como si ya hubiera sido definida y vinculada 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 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 cargador automático, ya que su trabajo principal es buscar una ruta de directorios para cargar y ejecutar archivos de comandos. En PHP 5, la funcionalidad de carga automática se activa cuando se hace 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 SPL ) y se les da la oportunidad de definir la clase, generalmente cargando el archivo en el que está definida.

PHP

spl_autoload_register ( función  ( $clase )  {  $archivo  =  'src/'  .  str_replace ( '\\' ,  '/' ,  $clase_relativa )  .  '.php' ;  si  ( archivo_existe ( $archivo ))  {  requiere  $archivo ;  } });

Enlaces externos