ahorro

Cómo hacer que Yii 1.x cargue automáticamente las clases de Composer

Fuente: El blog de Skatox.
4 del 5 de 2015

Hoy en día si programas una aplicación en PHP, es muy probable que utilices composer para instalar y manejar las dependencias de tu programa; sin embargo, aunque es fácil de utilizar e instalar dependencias, muchas veces tenemos problemas para instanciarlas en nuestra aplicación por los distintos formatos existentes (debido a la distintas versiones de PHP) utilizados para la carga de clases.

Con Yii framework es posible configurar para que cargue todas las clases instaladas con composer automáticamente, para ello, debes comenzar agregando lo siguiente en tu archivo composer.json

"config": {
  "vendor-dir": "protected/external" //definimos la carpeta de instalación
},
"autoload": {
  "psr-0": {  //definimos el estándar a usar
   "config": "./",
    "": "src"
  },
  "classmap": ["protected/"] //CREO que define el namespace raíz de las clases
},
"require": {
  "php": ">=5.3.2", //la versión de php a usar
  "yiisoft/yii": "1.1.*", //la última versión de Yii 1.1
}

En tu archivo /index.php modificamos el atributo classMap de la aplicación Yii, para incluir las rutas de los componentes externos que han sido instalados con composer:

require_once($yii);
$loader = require(__DIR__ . '/protected/external/autoload.php');
Yii::$classMap = $loader->getClassMap();
Yii::createWebApplication($config)->run();

¡Listo! A partir de ahora se cargaran automáticamente, las clases ubicadas en las rutas definidas en /protected/config/main.php y todas las ubicadas en la carpeta protected/external. De esta forma, puedes instalar componentes/clases/liberías desde composer y automáticamente se integrarán a tu aplicación Yii.


Loading...