Buscar..


Autocarga

Para las bibliotecas que especifican información de carga automática, Composer genera un archivo proveedor / autoload.php. Simplemente puede incluir este archivo y obtendrá la carga automática de forma gratuita.

require __DIR__ . '/vendor/autoload.php';

Esto hace que sea realmente fácil de usar código de terceros. Por ejemplo: si su proyecto depende de Monolog, puede comenzar a usar las clases y se cargarán automáticamente.

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

Incluso puede agregar su propio código al autocargador agregando un campo de autoload a composer.json

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer registrará un autocargador PSR-4 para el espacio de nombres Acme.

Se define una asignación de espacios de nombres a directorios. El directorio src estaría en la raíz de su proyecto, en el mismo nivel que el directorio del proveedor. Un ejemplo de nombre de archivo sería src/Foo.php contiene una clase Acme\Foo .

Después de agregar el campo de carga automática, debe volver a ejecutar dump-autoload para volver a generar el archivo vendor/autoload.php .

Incluir ese archivo también devolverá la instancia del autocargador, por lo que puede almacenar el valor de retorno de la llamada de inclusión en una variable y agregar más espacios de nombres. Esto puede ser útil para las clases de carga automática en un conjunto de pruebas, por ejemplo.

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);

Además de la carga automática de PSR-4, Composer también admite PSR-0, classmap y carga automática de archivos.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow