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