eloquent dans codeigniter 4

Comment intégrer Eloquent dans Codeigniter 4

Partagez sur:

Dans ce tutoriel nous allons voir comment intégrer Eloquent dans Codeigniter 4 pas à pas.

J’ai commencé à apprendre le Framework PHP Codeigniter avec la version 4, celle là étant une version complètement réécrite selon les dires.

J’avoue que c’est un Framework PHP magnifique, Rapidement une chose a attiré mon attention, c’est la partie manipulation de base de données, c’est à dire un ORM (Oject Relation Maping), qui est une interface qui permet de traduire les objets du langage PHP en tables, en un mot traduire le monde objet en monde relationnel.

Je signal que avant de commencer à apprendre Codeigniter, j’utilise déjà des framework web comme Ruby On Rails, Laravel qui ont tous des ORM magnifique est puissants.

Après plusieurs recherche sur internet je me suis rendu compte que CodeIgniter 4 ne dispose pas d’un ORM tel qu’on le connaît, mais il dispose qu’à même d’un API de création de requête ; moi qui est habitué à l’utilisation des ORM puissant, je me suis automatique mis à la recherche d’une solution, c’est là que que j’ai découvert Doctrine qui un ORM puissant pour le langage PHP, qui est utilisé comme ORM par défaut du framework Symfony. Il est inspiré par Hibbernate de Java.

Lire aussi: Comment installer CodeIgniter 4 sur Ubuntu 20.04

Après plus heures passés dans la documentation de Doctrine, je me suis rendu compte qu’il n’est pas comme les autres ORM que je connais déjà et son intégration dans Codeigniter 4 n’est pas chose facile.

Donc je suis reparti à la recherche d’une solution, c’est là que je découvert comment intégrer l’ORM Eloquent dans Codeigniter 4 et j’ai donc décidé de partager avec vous.

 

Intégrer Eloquent dans Codeigniter 4

Pour intégrer Eloquent dans Codeigniter 4, nous allons commencer par installer Eloquent, pour se faire, nous allons lancer la commande suivante dans notre terminal, avant faut s’assurer de disposer de composer sur votre système.

composer require illuminate/database

 

Configuration de Eloquent

Une fois que l’installation de Eloquent, nous allons proceder à sa configuration, pour cela rendez-vous dans le dossier « app/Config/ » et créer un fichier nommé « Eloquent.php » et copiez le code ci-dessous dedans :

 

<?php
namespace Config;
use Illuminate\Database\Capsule\Manager as Capsule;
/**
 * 
 */
class Eloquent
{
  
  function __construct()
  {

    $capsule = new Capsule;
    $db_config = config('Database');
    // // DBDriver
    $capsule->addConnection([
        'driver'    => 'mysql', // $db_config->default['DBDriver']
        'host'      => $db_config->default['hostname'],
        'database'  => $db_config->default['database'],
        'username'  => $db_config->default['username'],
        'password'  => $db_config->default['password'],
        'charset'  =>  $db_config->default['charset'],
        'collation' => $db_config->default['DBCollat'],
        'prefix'    => $db_config->default['DBPrefix']
    ]);

    $capsule->setAsGlobal();

    $capsule->bootEloquent();
  }
}

 

Ajouter un nouveau service Eloquent

Nous devons ajouter Eloquent comme service, pour ajouter un nouveau, ouvrez le fichier nommé « App/Config/Services.php », puis ajouter la fonction ci-dessous :

 

public static function eloquent($getShared = true)
  {
      if ($getShared)
      {
          return static::getSharedInstance('eloquent');
      }
      return new \Config\Eloquent();
  }

 

Charger le service Eloquent

Une fois que le nouveau service Eloquent ajouté, nous devons le charger.

Rendez-vous dans « Config/Events.php », le code doit ressembler à cela :

Events::on('pre_system', function () {
...
service('eloquent');
...

 


Utilisation de Eloquent dans vos models

Une fois qu’on a fini d’intégrer Eloquent dans Codeigniter, nous pouvons commencer à l’utiliser dans vos model comme ceci :

<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
}

Le code d’un controller ressemblera à cela :

<?php namespace App\Controllers;
use App\Models\User;

class Home extends BaseController
{
  public function index()
  { 
    $Users = User::all();
    var_dump($Users);
  }
   //-----------------------------------------------------------

}

 

Conclusion

Dans ce tutoriel nous avons vu comment intégrer  Eloquent dans Codeigniter 4.

J’espère que ce tutoriel vous a aidé. Merci


Partagez sur: