imliam / yii2-traits

A collection of miscellaneous traits to extend parts of Yii2.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yii2 Traits

Latest Version on Packagist Total Downloads License

A collection of miscellaneous traits to extend parts of Yii2.

πŸ’Ύ Installation

You can install the package with Composer using the following command:

composer require imliam/yii2-traits:^1.0.0

Once installed, you can then use the traits in your existing classes.

πŸ“ Usage

yii\db\Migration

Migration@fillColumn(string $table, string $column, $value)

Set the default value of an existing column.

<?php

use yii\db\Migration;
use ImLiam\Yii2Traits\MigrationHelpers;

class m180524_091606_run_migration extends Migration
{
    use MigrationHelpers;

    public function safeUp()
        $this->addColumn('users', 'country', 'string');
        $this->fillColumn('users', 'country', 'GB');
    }
}

yii\db\ActiveRecord

ActiveRecord@firstOrCreate(array $attributes, array $values = []): self

Get the first record matching the attributes or create it. Perfect for handling pivot models.

<?php

use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;

class User extends ActiveRecord
{
    use ActiveRecordHelpers;
}

$user = User::firstOrCreate(['id' => 1], ['username' => 'Admin']);
// Returns user ID 1 if it exists in the database, or creates
// a new user with the ID of 1 and username of 'Admin'

ActiveRecord@create(array $attributes): self

Create a new instance of the model and persist it.

<?php

use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;

class User extends ActiveRecord
{
    use ActiveRecordHelpers;
}

$user = User::create(['username' => 'Admin']);
// Creates and returns a new user with the username of 'Admin'

ActiveRecord@make(array $attributes): self

Create a new instance of the model without persisting it.

<?php

use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;

class User extends ActiveRecord
{
    use ActiveRecordHelpers;
}

$user = User::make(['username' => 'Admin']);
// Makes a new user with the username of 'Admin' but does NOT save it to the database

ActiveRecord@deleteIfExists(array $attributes)

Delete a model matching the given attributes.

<?php

use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;

class User extends ActiveRecord
{
    use ActiveRecordHelpers;
}

User::deleteIfExists(['username' => 'Admin']);
// Deletes all users with the username of 'Admin'

ActiveRecord@first(string $orderBy = null)

Get the first instance of a model.

<?php

use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;

class User extends ActiveRecord
{
    use ActiveRecordHelpers;
}

$user = User::first();
// Returns the first user in the database

βœ… Testing

composer test

πŸ”– Changelog

Please see the changelog file for more information on what has changed recently.

⬆️ Upgrading

Please see the upgrading file for details on upgrading from previous versions.

πŸŽ‰ Contributing

Please see the contributing file and code of conduct for details on contributing to the project.

πŸ”’ Security

If you discover any security related issues, please email liam@liamhammett.com instead of using the issue tracker.

πŸ‘· Credits

♻️ License

The MIT License (MIT). Please see the license file for more information.

About

A collection of miscellaneous traits to extend parts of Yii2.

License:MIT License


Languages

Language:PHP 100.0%