jueves, 6 de abril de 2017

Montar ORM Eloquent en CodeIgniter 3.




En este artículo veremos cómo montar el ORM Eloquent en CodeIgniter 3.0.3.

Para esto es necesario tener la base del framework que la podemos descargar desde la web oficial https://www.codeigniter.com/download, además de tener instalado en nuestra pc el manejador de paquetes composer.

Una vez teniendo esto vamos a proceder con los pasos a seguir para el objetivo mencionado.

Una vez teniendo esto vamos a proceder con los pasos a seguir para el objetivo mencionado.
1.  
    En la carpeta del proyecto dirigirse al fichero application/config/config.php y modificar las siguientes variables dejándolas como se muestra a continuación
1.       $config['composer_autoload'] = 'vendor/autoload.php';
2.       $config['enable_hooks'] = true;

2.      Dentro del terminal dirigirse a la raíz del proyecto y ejecutar el siguiente comando composer require illuminate/database (Esto cargara la última versión estable de Eloquent al proyecto del sitio packagist.org, en caso de hacernos falta alguna versión en específico utilizaríamos composer require illuminate/database 5.2)

Una vez terminada la descarga, crear el fichero EloquentHook.php en la carpeta application/hooks y pegar dentro de este el siguiente contenido:

<?php

use Illuminate\Database\Capsule\Manager as Capsule;

class EloquentHook
{

    /**
     * Guardar la instancia
     * @var object
     */
    protected $instance;

    /**
     * Obtiene la instancia de CI
     */
    private function setInstance()
    {
        $this->instance =& get_instance();
    }

    /**
     * Cargar la BD
     */
    private function loadDatabase()
    {
        $this->instance->load->database();
    }

    /**
     * Returns the instance of the db
     * @return object
     */
    private function getDB()
    {
        return $this->instance->db;
    }

    public function bootEloquent()
    {

        $this->setInstance();

        $this->loadDatabase();

        $config = $this->getDB();

        $capsule = new Capsule;

        $capsule->addConnection([
            'driver'    => 'mysql',
            'host'      => $config->hostname,
            'database'  => $config->database,
            'username'  => $config->username,
            'password'  => $config->password,
            'charset'   => $config->char_set,
            'collation' => $config->dbcollat,
            'prefix'    => $config->dbprefix,
        ]);

        $capsule->setAsGlobal();
        $capsule->bootEloquent();
    }

}

En este fichero las credenciales de acceso a la base de datos son tomadas de application/config/database.php.

       Abrir el fichero application/config/hooks.php y pegar el siguiente código:

$hook['post_controller_constructor'][] = [
    'class'    => 'EloquentHook',
    'function' => 'bootEloquent',
    'filename' => 'EloquentHook.php',
    'filepath' => 'hooks'
];                
2     
   Crear una carpeta en el directorio application con el nombre eloquent (aquí es donde irán todos los modelos eloquent)

 Ahora para cargar automáticamente todos los modelos abrir application/config/autoload.php y al final del fichero pegar lo siguiente:


| -------------------------------------------------------------------
|  Auto-load Eloquent ORM folder
| -------------------------------------------------------------------
 */
spl_autoload_register(function ($class) {
    if (file_exists(APPPATH . 'eloquent/' . $class . '.php')) {
        include APPPATH . 'eloquent/' . $class . '.php';
    }
});                

Ya solo falta crear nuestros modelos eloquent en la carpeta definida para ello y llamarlos desde nuestros controladores.     
Espero les haya servido de ayuda.


¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon