2017 © Pedro Peláez
 

library laravel-spec-schema

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features

image

ooxif/laravel-spec-schema

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features

  • Wednesday, June 15, 2016
  • by ooxif
  • Repository
  • 1 Watchers
  • 1 Stars
  • 6,235 Installations
  • PHP
  • 0 Dependents
  • 1 Suggesters
  • 2 Forks
  • 2 Open issues
  • 6 Versions
  • 14 % Grown

The README.md

laravel-spec-schema

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features., (*1)

Install

composer require "ooxif/laravel-spec-schema:1.0.*", (*2)

then - add 'Ooxif\LaravelSpecSchema\SpecSchemaServiceProvider', to providers in config/app.php. - replace 'Schema' => 'Illuminate\Support\Facades\Schema', to 'Schema' => 'Ooxif\LaravelSpecSchema\Facades\Schema', in aliases of config/app.php., (*3)

Examples

use Ooxif\LaravelSpecSchema\Blueprint;

Schema::create('table_name', function (Blueprint $table) {
    // Blueprint extends Illuminate\Database\Schema\Blueprint.

    // add a BINARY column if the driver is MySQL,
    // otherwise falls back to default binary(). 
    $table->myBinary('column_name', 8);

    // VARBINARY/TINYBLOB/MEDIUMBLOB/LONGBLOB also falls back to default binary().
    $table->myVarBinary('column_name', 16);
    $table->myTinyBlob('column_name');
    $table->myMediumBlob('column_name');
    $table->myLongBlob('column_name');

    // TINYTEXT falls back to default text().
    $table->myTinyText('column_name');

    // add `collate`
    $table->string('column_name')->collate('utf8_bin');
});

Use your own Schema Builder/Grammar/Blueprint classes

class MyMySqlBuilder extends Ooxif\LaravelSpecSchema\MySql\Builder
                  // extends Illuminate\Database\Schema\MySqlBuilder
{
    // your code here.
}

class MyMySqlGrammar extends Ooxif\LaravelSpecSchema\MySql\Grammar
                  // extends Illuminate\Database\Schema\Grammars\MySqlGrammar
{
    // your code here.
}

class MyBlueprint extends Ooxif\LaravelSpecSchema\Blueprint
               // extends Illuminate\Database\Schema\Blueprint
{
    // your code here.
}


// setBuilderClass(string $driverName, string $className)
Schema::setBuilderClass('mysql', 'MyMySqlBuilder');

// setGrammarClass(string $driverName, string $className)
Schema::setGrammarClass('mysql', 'MyMySqlGrammar');

// setBlueprintClass(string $className)
Schema::setBlueprintClass('MyBlueprint');


Schema::create('table_name', function ($table) {
    $table instanceof MyBlueprint; // true

    $table->getBuilder() instanceof MyMySqlBuilder; // true

    $table->getBuilder()->getGrammer() instanceof MyMySqlGrammar; // true
});

The Versions

15/06 2016

dev-master

9999999-dev

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

database laravel schema eloquent mysql

15/06 2016

1.0.4

1.0.4.0

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

database laravel schema eloquent mysql

05/06 2015

1.0.3

1.0.3.0

Extends Laravel's Schema/Grammar/Blueprint to describe drivers' specific features

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

database laravel schema eloquent mysql

02/06 2015

1.0.2

1.0.2.0

Extends Laravel's schema builder

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

laravel eloquent

02/06 2015

1.0.1

1.0.1.0

Extends Laravel's schema builder

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

laravel eloquent

02/06 2015

1.0.0

1.0.0.0

Extends Laravel's schema builder

  Sources   Download

MIT

The Requires

 

by Avatar ooxif

laravel eloquent