Написал свое правило для urlManager'а.
При загрузке страницы вызывается метод parseRequest.
Но мне перед этим необходимо внедрить некоторые зависимости. Пробую их внедрить и через __construct и через init(). Но они не вызываются. Прошу помощи.
Конфиг:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'site\components\seo\SeoPageUrlRule',
// DI через конструктор и init() не сканало, делаем так
'managerClass' => 'common\components\seo\interfaces\ISeo'
]
],
],
Класс
<?php namespace site\components\seo;
use yii\web\UrlRuleInterface;
use yii\base\BaseObject;
use Yii;
class SeoPageUrlRule extends BaseObject implements UrlRuleInterface
{
public $managerClass;
protected $seo;
public function __construct()
{
echo 'construct';
die;
}
public function init()
{
echo 'init';
die;
}
public function createUrl($manager, $route, $params)
{
/* */
}
public function parseRequest($manager, $request)
{
echo 'parse';
die;
}
}
На странице видим только parse
P.S. Я понимаю, что можно сделать доп. метод с нужной инициализацией и вызывать его внутри parseRequest и createUrl, но хотелось бы как-нибудь сделать это заранее.
public function init()
{
parent::init();
echo 'init';
die;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Программа имеет двух пользователей doctor и patient которые обладают некоторыми общими полямиЯ создал таблицу user в котором будут общие поля пользователей
WEB сервис работает нормально с клиентами C#, VFP, VBПодключились клиенты на PHP
Подскажите, как сделать в обратной связи 2 письма, одно отправлять админу, другое клиентуАдмину текст, что поступила заявка от клиента, номер...