Еще один вопрос по шаблонизатору Blade. Опять же, как и в прошлом примере, вывожу дату, форматированную средствами Carbon:
Blade::directive('date', function($expression) {
return '<?php echo Carbon::ФУНКЦИЯ(' . $expression . '); ?>'
});
Директива должна работать следующим образом:
@date($date)
Проблема в следующем. Насколько я понимаю, функция возвращает PHP-код, который встраивается вместо директивы на страницу, после чего уже выполняется как обычная PHP-вставка ("$expression" в данном примере хранит в себе всего лишь имя переменной - "$date", но не ее значение). Но для использования функции внутри нее мне необходимо подключать к модулю класс "Carbon", и если он не подключен напрямую к отображению, вызывающему директиву, то возникает ошибка "Class not found".
Сейчас решаю проблему простым добавлением "use" к отображению, но это не видится правильным решением - необходимость подключения класса к каждому отображению вместе с вызовом директивы сильно снижает эффективность этого подхода. Можно ли каким-то образом передать внутрь описания директивы значение переменной, а не ее имя? Или есть другой выход из этой ситуации?