Coder Social home page Coder Social logo

yii2-traits's Introduction

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 [email protected] instead of using the issue tracker.

๐Ÿ‘ท Credits

โ™ป๏ธ License

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

yii2-traits's People

Contributors

imliam avatar

Watchers

James Cloos avatar  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.