2020-10-12

Utilizar NAMESPACED en CakePHP 2.x y composer para proyecto viejo..

Quizas tenes proyectos viejos que fueron creado en CakePHP 2.x  y siguen funcionando y que por tiempo o costos no pudiste actualizar a CakePHP 3.x o 4.x como es mi caso. 


Con estos pasos vas a poder utilizar NAMESPACED  sin que de error, siempre y cuando tengas configurado tu sistema (CakePHP 2.x con Composer y PHP 5 >= 5.3.0) para poder crear código más robustos y aplicar mejores prácticas con patrones de diseños y poder hacer un mantenimiento más simple del sistema.


Paso 1): Modificar tu archivo composer.json agregando algo similar a esto.

"autoload": {
  "psr-4": {
    "Mylib\\": "app/Lib/Mylib/"
  }
}

Paso 2): Ejecuta el siguiente comando donde esta el archivos composer.json que modificaste.

composer dump-autoload

Paso 3): Crear tu class dentro de "app/Lib/Mylib" o SubCarpeta según el caso y como esta en el ejemplo.

<?php

// app/Lib/Mylib/Error/MyErrorHandler.php
namespace Mylib\Error;

class MyErrorHandler
{
    ........
}

Paso 4): Ejemplo de como utilizarlo dentro de un controller

<?php

App::uses('AppController', 'Controller');

use Mylib\Error\MyErrorHandler;

class UsersController extends AppController

{

    public $components = array('Paginator', 'Session', 'Flash');

    public function index()

    {

        $testDemo = new MyErrorHandler() ;
        $testDemo ->myTest1(__('Error EOM ;-]')) ;
        var_dump($testDemo ) ;

        $this->set('clientesReferidosNiveles', $this->Paginator->paginate());

    }

.....
.....
.....


Listo eso es todo para poder utilizar tus class y el load automático con  NAMESPACED.

Saludos y espero que le sea útil ;-)

No hay comentarios: