imliam/yii2-traits

A collection of miscellaneous traits to extend parts of Yii2

v1.0.0 2018-07-22 16:58 UTC

This package is auto-updated.

Last update: 2024-04-29 03:47:14 UTC


README

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.