Почему метод не работает после вызова в другом методе?

Здравствуйте!
Свойство в классе Controller
public static $vars = [];
Есть в классе Controller два метода отправки во вьюху данных:
public static function set($vars)
{
    self::$vars = $vars;
}

и
public static function setMeta($description)
{
        $generator = 'Название сайта';
        self::set(compact('generator', 'description'));
}

Во вьюху передаётся вот так:
new View(Controller::$vars);
Если вызвать в каком-то другом контроллере вот так:
public static function indexAction()
{
    Controller::setMeta('Описание страницы'); // работает, во вьюхе 2 переменных: $generator и $description
    $test = 'Значение'; // для примера
    Controller::set(compact('test')); // не работает, во вьюхе нет переменной $test
}

Если методы поменять местами в вызове, то выполняется всегда один - первый сверху :)
Что я накосячил тут?
Спасибо.
  • Вопрос задан
  • 389 просмотров
Решения вопроса 1
@Artsiom_Ryzhanki Автор вопроса
РЕШЕНИЕ
class Controller
{
    public static $vars = [];
    public static $meta = [];

    public static function set($vars)
    {
        self::$vars = $vars;
    }

    public static function setMeta($description)
    {
        self::$meta['generator'] = 'Название сайта';
        self::$meta['description'] = $description;
    }
}

ПРИМЕНЕНИЕ
class MainController
{
    public static function indexAction()
    {
        Controller::setMeta('Описание страницы');
        $meta = Controller::$meta;
        $test = 'test'; // ещё какие-то данные
        Controller::set(compact('meta', 'test')); // во вьюху прилетают $meta['generator'], $meta['description'], $test
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
А где вызывается самая важная часть new View(Controller::$vars);?
И какой порядок выполнения методов. От и до.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Affor Москва
от 135 000 руб.
от 80 000 до 120 000 руб.
Zoon Москва
от 140 000 до 220 000 руб.
18 июл. 2019, в 10:42
150000 руб./за проект
18 июл. 2019, в 10:14
300 руб./за проект
18 июл. 2019, в 09:39
5000 руб./за проект