Создание собственного компонента в Yii 2.x

Компоненты — это главные строительные блоки приложений основанных на 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('Привет мир');

На сайте отобразится 'Привет мир'. Если убираем параметр 'Привет мир' и не передаем ни какого значения в компонент, то выведется строка 'Текст по умолчанию'