Я пытаюсь сохранить значение, которое можно применить к любому экземпляру конкретного включаемого представления (и обновлять это значение каждый раз, когда оно включается). Представление является частичным, его можно многократно включать по всей странице и использовать где угодно, и значение просто для того, чтобы я мог применить разные классы CSS к каждому, в качестве простого примера:
<div class="my-class-name-{{$variable}}">
<!-- Content -->
</div>
ПРИМЕЧАНИЕ. Это не должен быть уникальный идентификатор, например, если бы у меня было 3 варианта CSS, класс $variable
будет когда-либо рассчитываться только до 3, а затем сбрасываться до 1 (при необходимости повторяется). Это означает, что мне нужно хранить максимальное значение и чуть-чуть логик c рядом с моей переменной.
Так что при поиске я нашел потенциальное решение в виде View Composer, которое может связывайте переменную каждый раз, когда визуализируется представление - что кажется идеальным для этой проблемы. Пример:
/ app / Http / View / Composrs / View Composer
class ViewComposer
{
//...
public function compose(View $view)
{
$view->with('variable', $value);
}
}
/ app / Providers / AppServiceProvider
// ...
public function register()
{
View::composer(
'newname', 'App\Http\View\Composers\ViewComposer'
);
}
Кажется великолепным, и если я когда-нибудь захочу сделать это более сложным, я могу легко расширить его в представлении Composer.
Так что мой вопрос теперь звучит так: Мне нужно хранить $value
где-нибудь - но где лучше?
Модель не имеет смысла для меня, потому что использование таблицы базы данных для счетчика кажется излишним. Я мог бы отследить его в контроллере, но разговор ViewComposer
напрямую с контроллером кажется мне плохой практикой, и поскольку это представление может быть включено везде, где это значение должно в основном существовать в каждом контроллере и передаваться каждому представлению - кажется беспорядочный.
Будет работать свойство stati c в самом ViewComposer
, и просто ViewComposer:$value++
при каждом вызове композиции, но действительно ли это хорошее место для хранения такого значения? Моя единственная проблема с использованием значения stati c в представлении Composer заключается в том, что, если это когда-либо увеличивалось, и я передавал несколько переменных в это представление, семантически целесообразно хранить такие значения stati c в composer?
Помимо всего прочего, является ли это решение лучшим способом достижения того, что я пытаюсь сделать?