yiimaker/yii2-data-static

Yii2 Static Data

Installs: 23

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 3

Forks: 0

Open Issues: 0

Type:yii2-extension

1.2.2 2017-01-10 15:03 UTC

This package is auto-updated.

Last update: 2024-04-14 02:56:23 UTC


README

It is a model for the data that stores configuration. StaticData subject to the same rules as yii\base\Model

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yiimaker/yii2-data-static "*"

or add

"yiimaker/yii2-data-static": "*"

to the require section of your composer.json file.

Usage

  1. Configure component yiimaker/yii2-configuration in config file or in StaticData class. More information
  2. Inherit the class ymaker\data\statics\StaticData, then describe it as a normal model.

Example

StaticData

class AboutUs extends ymaker\data\statics\StaticData
{
    public $phone;
    public $email;

    public function rules()
    {
        return [
            [['phone', 'email'], 'required'],
            ['phone', 'string', 'max' => 255],
            ['email', 'email']
        ];
    }
}
$aboutUs = new AboutUs();

Save Data

$aboutUs->phone = '+111111111111';
$aboutUs->email = 'test@example.com';
$aboutUs->save();

Load Data

$aboutUs->loadAttributes();
echo $aboutUs->email; // 'test@example.com';

or

$aboutUs = AboutUs::getInstance();

Reload Data

$aboutUs->loadAttributes();
$aboutUs->email = 'another@example.com';
$aboutUs->reload();

echo $aboutUs->email; // 'test@example.com';

StaticDataTranslation

class AboutUs extends ymaker\data\statics\StaticDataTranslation
{
    public $address;

    public function rules()
    {
        return [
            [['address'], 'required'],
            ['address', 'string', 'max' => 255],
        ];
    }
}
$aboutUs = new AboutUs(['language' => 'en-US']);
// $about

Save Data

$aboutUs->address = 'Kiev, Ukraine';
$aboutUs->save();
$aboutUs->setLanguage('ru-RU');
$aboutUs->address = 'Киев, Украина';
$aboutUs->save();

Load Data

$aboutUs->loadAttributes();
echo $aboutUs->address; // 'Киев, Украина'
$aboutUs->changeLanguage('en-US');
echo $aboutUs->address; // 'Kiev, Ukraine'

or

$aboutUs = AboutUs::getInstance(['language' => 'en-US']);

Reload Data

$aboutUs->loadAttributes();
$aboutUs->address = 'Лондон, Великобритания';
$aboutUs->reload();

echo $aboutUs->address; // 'Киев, Украина'

change language

    /**
     * change language for model
     * @param $language string language code
     * @param bool $reload If true, then all attributes will be overwritten
     */
    public function changeLanguage($language, $reload = true);
echo $aboutUs->address; // 'Киев, Украина'
$aboutUs->changeLanguage('en-US');
echo $aboutUs->address; // 'Kiev, Ukraine'

$aboutUs->changeLanguage('ru-RU', false);
echo $aboutUs->address; // 'Kiev, Ukraine'

$aboutUs->reload();
echo $aboutUs->address; // 'Киев, Украина'