electro-modules / illuminate-database by impactwave

Integrates the Laravel's Illuminate Database Component into the Electro framework
2,094
0
5
Package Data
Maintainer Username: impactwave
Maintainer Contact: impactwave@impactwave.com (Impactwave)
Package Create Date: 2016-01-27
Package Last Update: 2024-06-12
Home Page: http://electro-framework.github.io
Language: PHP
License: MIT
Last Refreshed: 2024-11-24 15:01:14
Package Statistics
Total Downloads: 2,094
Monthly Downloads: 18
Daily Downloads: 0
Total Stars: 0
Total Watchers: 5
Total Forks: 2
Total Open Issues: 0

Illuminate Database Plugin

Integrates the Laravel's Illuminate Database Component into the Electro framework

Introdution

This plugin integrates with PhpKit\ExtPDO and the framework's database subsystem, so that connections defined on the framework's Connections service are automatically available as Illuminate Database connections.

Installation

Server Requirements

Installation

To install this plugin on your application, using the terminal, cd to your app's directory and type:

workman install plugin electro-modules/illuminate-database

For correct operation, do not install this package directly with Composer.

Using the plugin

First, start by injecting the plugin API into your controller (or component, command, migration, etc).

use Electro\Plugins\IlluminateDatabase\DatabaseAPI;

class MyController
{
  private $api;

  function __construct (DatabaseAPI $api) {
    $this->api = $api;
  }
}

Using the query builder

Example
$this->api->query()->from('products')->where('type','box')->get();

or simply

$this->api->table('products')->where('type','box')->get();

Using the schema builder

Example
use Illuminate\Database\Schema\Blueprint;

$this->api->schema()->create ('news', function (Blueprint $table) {
    $table->increments ('id');
    $table->string ('title', 100);
});

Facades

This plugin also emulates some common database-related Laravel facades:

  • DB::method() - equivalent to $api->connection ()->method()
  • Schema::method() - equivalent to $api->schema()->method()

This way, you don't need to inject an API instance to call the query builder or the schema builder.

Note: being an anti-pattern, facades are not recommended for development with Electro.

Be sure to import the related namespaces before using the facades (do not use the original facades, it won't work).

  • use Electro\Plugins\IlluminateDatabase\DB;
  • use Electro\Plugins\IlluminateDatabase\Schema;

Using Eloquent

To use Eloquent, access your models as usual, but don't forget to base their classes on Electro\Plugins\IlluminateDatabase\BaseModel instead of Illuminate\Database\Eloquent\Model.

Example
use Electro\Plugins\IlluminateDatabase\BaseModel;

class Article extends BaseModel { }

$article = Article::find(1);

Migrations

Available commands

Command | Description ---------------------|----------------------------------------------------------------------------------------- make:migration | Create a new database migration. make:seeder | Create a new database seeder. migrate | Runs all pending migrations of a module, optionally up to a specific version. migrate:refresh | Reset and re-run all migrations. migrate:reset | Rollback all database migrations. migration:rollback | Reverts the last migration of a specific module, or optionally up to a specific version. migration:seed | Run all available seeders of a specific module, or just a specific seeder. migration:status | Print a list of all migrations of a specific module, along with their current status.

You can also type workman on the terminal to get a list of available commands.

Type worman help xxx (where xxx is the command name) to know which arguments and options each command supports.

License

The Electro framework is open-source software licensed under the MIT license.

Electro framework - Copyright © Cláudio Silva and Impactwave, Lda.