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
Requires
- yiimaker/yii2-configuration: ^1.3.0
- yiisoft/yii2: *
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
- Configure component
yiimaker/yii2-configuration
in config file or inStaticData
class. More information - 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; // 'Киев, Украина'