2017 © Pedro Peláez
 

library yii2-rmdb

Yii 2 Library to create RMDB models and migrations

image

tecnocen/yii2-rmdb

Yii 2 Library to create RMDB models and migrations

  • Thursday, July 26, 2018
  • by Faryshta
  • Repository
  • 4 Watchers
  • 1 Stars
  • 1,551 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 19 % Grown

The README.md

Yii2 RMDB Classes

Library with migrations and models to easily create RMDB tables and models., (*1)

Instalation

You can use composer to install the library tecnocen/yii2-rmdb by running the command;, (*2)

composer require tecnocen/yii2-rmdb, (*3)

or edit the composer.json file, (*4)

require: {
    "tecnocen/yii2-rmdb": "*",
}

Usage

Create Migrations

There are 3 migration classes for each type of RMDB tables., (*5)

tecnocen\rmdb\migrations\CreatePivot

Uses the properties $createdByColumn, $createdAtColumn and methods createdByDefinition(), createdAtDefinition() to store the user and datetime a record was created., (*6)

class m170101_000001_product_sale extends \tecnocen\rmdb\migrations\CreatePivot
{
    public $createdByColumn = 'creation_user';
    public $createdAtColumn = 'creation_date';

    public function getTableName()
    {
        return 'product_sale';
    }

    public function columns()
    {
        return [
            'product_id' => ...,
            'sale_id' => ...,
        ];
    }

    public function compositePrimaryKeys()
    {
        return ['product_id', 'sale_id'];
    }
}

tecnocen\rmdb\migrations\CreateEntity

Extends the previous class adding the properties $updatedByColumn, $updatedAtColumn and methods updatedByDefinition(), updatedAtDefinition() to store the user and datetime a record was updated., (*7)

class m170101_000001_product extends \tecnocen\rmdb\migrations\CreateEntity
{
    public $createdByColumn = 'creation_user';
    public $createdAtColumn = 'creation_date';
    public $updatedByColumn = 'edition_user';
    public $updatedAtColumn = 'edition_date';

    public function getTableName()
    {
        return 'product';
    }

    public function columns()
    {
        return [
            'id' => $this->prymariKey()->...,
            'name' => ...,
        ];
    }
}

tecnocen\rmdb\migrations\CreatePersistentEntity

A persistent entity remains stored in the database after the user deletes it., (*8)

The library yii2tech/ar-softdelete provides support for this functionality., (*9)

CreateEntity extends the previous class adding the properties $deletedByColumn, $deletedAtColumn and methods deletedByDefinition(), deletedAtDefinition() to store the user and datetime a record was deleted., (*10)

class m170101_000001_sale extends \tecnocen\rmdb\migrations\CreateEntity
{
    public $createdByColumn = 'creation_user';
    public $createdAtColumn = 'creation_date';
    public $updatedByColumn = 'edition_user';
    public $updatedAtColumn = 'edition_date';
    public $deletedByColumn = 'deletion_user';
    public $deletedAtColumn = 'deletion_date';

    public function getTableName()
    {
        return 'product';
    }

    public function columns()
    {
        return [
            'id' => $this->prymariKey()->...,
            'store_id' => ...,
        ];
    }
}

RMDB Module

This library uses a custom module to help configure all the extended models in an unified way., (*11)

configure it in your common\config\main.php in yii-app-advanced and common\config.php in yii-app-basic., (*12)

use tecnocen\rmdb\Module as RmdbModule;

return [
    // ...
    'modules' => [
        'rmdb' => [
            'class' => RmdbModule::class,
            'timestampClass' => ..., // optional
            'blameableClass' => ..., // optional
            'softDeleteClass' => ..., // optional
            'timestampValue' => time(), // optional by default uses `now()`
            'defaultUserId' => 5, // optional
        ],
    ],
];

Models

Like the migrations there are 3 classes for models., (*13)

tecnocen\rmdb\models\Pivot

Adds protected properties $createdByAttribute and $createdAtAttribute to configure the names of the attributes. The class will automatically load the needed behaviors and configure them to use the attributes as provided by this properties., (*14)

class ProductSale extends \tecnocen\rmdb\models\Pivot
{
    protected $createdByAttribute = 'creation_user';
    protected $createdAtAttribute = 'creation_date';

    // rest of model methods and logic
}

tecnocen\rmdb\models\Entity

Extends the previos class and adds protected properties $updatedByAttribute and $updatedAtAttribute to configure the names of the attributes. The class will automatically load the needed behaviors and configure them to use the attributes as provided by this properties., (*15)

class Product extends \tecnocen\rmdb\models\Entity
{
    protected $createdByAttribute = 'creation_user';
    protected $createdAtAttribute = 'creation_date';
    protected $updatedByAttribute = 'edition_user';
    protected $updatedAtAttribute = 'edition_date';

    // rest of model methods and logic
}

tecnocen\rmdb\models\PersistentEntity

Extends the previos class and adds protected properties $deletedByAttribute and $deletedAtAttribute to configure the names of the attributes. The class will automatically load the needed behaviors and configure them to use the attributes as provided by this properties., (*16)

class Product extends \tecnocen\rmdb\models\PersistentEntity
{
    protected $createdByAttribute = 'creation_user';
    protected $createdAtAttribute = 'creation_date';
    protected $updatedByAttribute = 'edition_user';
    protected $updatedAtAttribute = 'edition_date';
    protected $deletedAtAttribute = 'deletion_user';
    protected $deletedAtAttribute = 'deletion_date';

    // rest of model methods and logic
}

The Versions

26/07 2018

dev-master

9999999-dev

Yii 2 Library to create RMDB models and migrations

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

framework yii2 migration advanced migrate rmdb relational model database

05/12 2017

0.1.2

0.1.2.0

Yii 2 Library to create RMDB models and migrations

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

framework yii2 migration advanced migrate rmdb relational model database

03/11 2017

0.1.1

0.1.1.0

Yii 2 Library to create RMDB models and migrations

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

framework yii2 migration advanced migrate rmdb relational model database

23/10 2017

0.1.0

0.1.0.0

Yii 2 Library to create RMDB models and migrations

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

framework yii2 migration advanced migrate rmdb relational model database