UrlRule. __construct и init() не вызываются

217
01 июля 2018, 15:30

Написал свое правило для 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, но хотелось бы как-нибудь сделать это заранее.

Answer 1

public function init()
    {
        parent::init();
        echo 'init';
        die;
    }
READ ALSO
Как спроектировать базу данных, если у меня два пользователя с некоторыми различными полями

Как спроектировать базу данных, если у меня два пользователя с некоторыми различными полями

Программа имеет двух пользователей doctor и patient которые обладают некоторыми общими полямиЯ создал таблицу user в котором будут общие поля пользователей

198
php SOLR как получить документы из SolrQuery?

php SOLR как получить документы из SolrQuery?

Значит в мануале есть такой код

188
WEB сервис не работает с PHP

WEB сервис не работает с PHP

WEB сервис работает нормально с клиентами C#, VFP, VBПодключились клиенты на PHP

202
Обратная связь с отбивкой клиенту на указанную почту

Обратная связь с отбивкой клиенту на указанную почту

Подскажите, как сделать в обратной связи 2 письма, одно отправлять админу, другое клиентуАдмину текст, что поступила заявка от клиента, номер...

246