Компоненты — это главные строительные блоки приложений основанных на Yii. Компоненты наследуются от класса yii\base\Component или его наследников. К примеру к компонентам относится 'urlManager' - отвечает за процесс формирования ссылок, 'bd' - компонент работы с базой данных. Каждый компонент имеет свой уникальный идентификатор.
Yii::$app->componentID
Где componentID название компонента. Привидем примеры компонентов:
Yii::$app->db Yii::$app->cache Yii::$app->request Yii::$app->session Yii::$app->mailer
Создаем папку components, добавляем файл MessageComponent.php и вставляем следующий программный код
namespace app\components; use yii\base\Component; use yii\helpers\Html; class MessageComponent extends Component{ // объявляем класс public $content; public function init(){ // функция инициализации. Если данные не будут переданы в компонент, то он выведет текст "Текст по умолчанию" parent::init(); $this->content= 'Текст по умолчанию'; } public function display($content=null){ // функция отображения данных if($content!=null){ //проверка строки на пустоту $this->content= $content; } echo Html::encode($this->content); // вывод данных } }
Регистрируем компонент в файле config/web.php
'components' => [ 'message' => [ 'class' => 'app\components\MessageComponent', ], ],
Вставляем следующую строку:
Yii::$app->message->display('Привет мир');
На сайте отобразится 'Привет мир'. Если убираем параметр 'Привет мир' и не передаем ни какого значения в компонент, то выведется строка 'Текст по умолчанию'