First of all, we need to install the required component via composer:

composer install illuminate/database

Let’s create our index.php file to start experimenting:

<?php

require 'vendor/autoload.php'

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule();

Capsule class is a sort of helper to work with a database. It uses Laravel’s Container inside to manage connections and to create a DatabaseManager object.

The next step is to add a connection with the specified settings (driver, login, password):

<?php
// index.php
$capsule->addConnection([
    'driver' => 'sqlite',
    'database' => __DIR__ . '/../database.sqlite'
]);

$capsule->bootEloquent();

AddConnection() method adds specified to the container’s ['config']['database.connections'] array. Then bootEloquent() passes a DatabaseManager instance as a connection resolver to the Eloquent\Model class:

<?php 
// Illuminate\Database\Capsule\Manager.php

/**
 * Register a connection with the manager.
 *
 * @param  array   $config
 * @param  string  $name
 * @return void
 */
public function addConnection(array $config, $name = 'default')
{
    $connections = $this->container['config']['database.connections'];

    $connections[$name] = $config;

    $this->container['config']['database.connections'] = $connections;
}

/**
 * Bootstrap Eloquent so it is ready for usage.
 *
 * @return void
 */
public function bootEloquent()
{
    Eloquent::setConnectionResolver($this->manager);

    // If we have an event dispatcher instance, we will go ahead and register it
    // with the Eloquent ORM, allowing for model callbacks while creating and
    // updating "model" instances; however, if it not necessary to operate.
    if ($dispatcher = $this->getEventDispatcher()) {
        Eloquent::setEventDispatcher($dispatcher);
    }
}

So, this was our setup step and now we are ready to start implementing models. We start with creating a special folder models for them. And lets create a User model:

<?php

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent
{
    protected $fillable = [
        'first_name',
        'last_name',
        'email'
    ];
}

And that is all! Now we can create and use Eloquent models in our application. The only required steps are:

  1. Create a capsule manager and add a connection to it.
  2. Boot eloquent on the capsule manager.
  3. Create and use Eloquent models by extending Eloquent\Model class.