expressodev / laravel-codeigniter-db

Integration layer allowing use of the Laravel database library in CodeIgniter applications

Stars
29

Laravel CodeIgniter Database Integration

Build Status
Latest Stable Version

This package allows you to use the excellent Laravel database library
(illuminate/database) inside your
CodeIgniter applications.

Laravel normally uses PDO to
make database connections. CodeIgniter establishes its own connection to the database.

If you are only using the Laravel database components, then this will not be a problem -
you can simply disable the CodeIgniter database connection and use Laravel's instead.
However, if your application is using a mixture of CodeIgniter and Laravel database
libraries, this is the package for you.

This integration layer takes all requests made to the Laravel database library, converts
them to raw SQL, then passes them through to the underlying CodeIgniter database driver.
This means that you will not need to establish two separate connections to the database,
and it also means that CodeIgniter database profiling functions will continue to
work correctly.

Usage

In your composer.json file:

{
    "require": {
        "expressodev/laravel-codeigniter-db": "~1.0"
    }
}

In your application:

// use our mock PDO class if PDO is not enabled on this server
if (!class_exists('PDO')) {
    class_alias('Illuminate\CodeIgniter\FakePDO', 'PDO');
}

// pass all Laravel database queries through to CodeIgniter
$ci = get_instance();
$resolver = new Illuminate\CodeIgniter\CodeIgniterConnectionResolver($ci);
Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver);

License

MIT License