разные способы создания объекта с помощью контейнера. При создании объекта можно сконфигурировать различные параметры, в т.ч. и поведения
<?php
namespace core\behaviors;
use yii\base\Behavior;
class TestBehavior extends Behavior
{
public function getCount()
{
echo 5;
}
}
<?php
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'account' => [
'class' => \core\entities\Account::className(),
'as testBehavior' => \core\behaviors\TestBehavior::className()
]
]
];
<?php
namespace frontend\controllers;
class SiteController extends Controller
{
public function actionIndex()
{
$account = Yii::createObject([
'class' => 'core\entities\Account',
'as testBehavior' => \core\behaviors\TestBehavior::className()
]);
$account->count; // 5
$account->getCount(); // 5
// или можно с использованием файла конфигурации
$account = Yii::$app->account;
$accout->count; // 5
return $this->render('index');
}
}