Compositor y autocargador (Composer and Autoloader)

Una de las mas grandes molestias al programar en PHP es tener que incluir al principio de nuestro codigo las librerias necesarias el cual usaremos dentro del codigo y cargarlas para poder ser utilizada. Por ejemplo:

<?php

// Classes/A.php
class A {}
<?php

// Classes/B.php
class B {}
<?php

// index.php
include_once 'Classes/A.php';
include_once 'Classes/B.php';

// Load A class
$a = new A();

Basado al ejemplo anterior el cual se ve muy simple, imaginen el siguiente escenarion, el tengamos una lista larga de librerias que tenemos que incluir en cada archivo y luego tener que cargarlas todas para poder utilizarlas. Es aqui que los auto cargadores nos ayudan a tener una mejor experiencia al programar porque nos ayuda a incluir y cargar las librerias de manera automatica. Ejemplo de como trabaja un auto cargador:

<?php

// my custom autoloader
function my_autoloader($class) {
  include '../Classes/' . $class . '.php';
}

// register the autoloader
spl_autoload_register('my_autoloader');

// load class
$a = new A();

var_dump(get_included_files());
//-> array(2) {[0]=> string(30) "/var/www/html/public/index.php", 
//-> [1]=> string(27) "/var/www/html/Classes/A.php"}

Composer

Junto al codigo de nuestra aplicacion tenemos que anadir el archivo composer.json y corre el siguiente commando en terminal composer install

{
  "autoload": {
    "classmap": [
      "Classes/"
    ]
  }
}

Nuestro archivo index.php tenemos que actualizarlo incluyendole:

require __DIR__ . '/vendor/autoload.php'

classmap Ayuda a composer a trazar direcciones de archivos el cual necesites.

Classmap, PSR-0 y PSR-4

Existen varias manera de trazar direcciones, cada una consiste de diferentes reglas y composer entiende como manejar con cada una de ellas al especificar el metodo de trazados en el archivo composer.json

  • Classmap - es el mas simple, escaneo de todas las rutas de archivos y crea un arreglo de las direcciones. Cada vez que anades un nuevo archivo debes de correr el siguiente comando en terminal composer dumpautoload para regenerar el trazado de archivo nuevamente.
  • PSR-0
  • PSR4 - Esta al igual que PSR-0 esta no es necesario ejecutar el comando composer dumpautoload cada vez que anadas nuevos archivos y es necesario utilizar espacios de nombre para adjustar archivos a las rutas de los archivos.

results matching ""

    No results matching ""