GithubHelp home page GithubHelp logo

tiagomgelias / illuminate-database Goto Github PK

View Code? Open in Web Editor NEW

This project forked from electro-modules/illuminate-database

0.0 0.0 0.0 94 KB

Integrates Laravel's Illuminate Database Component into the Electro framework

Home Page: http://electro-framework.github.io

PHP 100.00%

illuminate-database's Introduction

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.

illuminate-database's People

Contributors

claudio-silva avatar tiagomgelias avatar goncalomartins avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.