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)
3  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.
 

 
 



No hay comentarios:
Publicar un comentario