Laravel Общие методы для blade view файлов

mstdmstd

Новичок
Подскажите,
в laravel 5.4 все свои контролы и модели наследую от общих контрола и модели, в которые запихнул множество общих методов и переменных
И этим заметно облегчил себе жизнь.
Нет ли такой возможности сделать с blade view ?

Эти методы работают если казать полный путь при вызове метода:

HTML:
<div class="form-group row {{ \App\library\appFuncs::setFieldErrorTag($errorsList, "name", ' has-danger ') }} ">
<label for="name" class="col-2 col-form-label">Name</label>
<div class="col-10">
<input class="form-control {{ \App\library\appFuncs::setFieldErrorTag($errorsList, "name", ' form-control-danger ') }}" type="text" value="{{ isset($category->name) ? $category->name : }}" id="name" name="name" maxlength="50" placeholder="Enter string name" >''
<small class="form-text text-muted">Name of Category. Must be unique in system.</small>
</div>
</div>

Спасибо!
 

mstdmstd

Новичок
Спасибо, получилось.
Но остался вопрос, а можно ли подключить этот класс в родительском темплейте и вызывать в наследуемых темплейтах, без дополнительного подключения?
что-то вроде в resources/views/layouts/app.blade.php :
HTML:
<!DOCTYPE html>
<html lang="{{ config('app.locale') }}">
<head>
   ...
   @inject('viewFuncs', 'App\library\viewFuncs')

   @section('header')
   @show

   @section('media')
   ...



@show
</head>




...
<div class="container">
@yield('content', $viewFuncs)
</div>




</div>


</body>

...



И в resources/views/profile/profile.blade.php :

HTML:
  {{--@inject('viewFuncs', 'App\library\viewFuncs')--}}
  {{ $viewFuncs->getUserActiveStatusLabel($loggedUser->active_status) }}
Ругается на неопределенную viewFuncs, если не раскоментарить строку выше.
 

fixxxer

К.О.
Партнер клуба
Blade это не настоящий template engine, а макропроцессор (поэтому я предпочитаю использовать Twig). Конструкции в фигурных скобках - это макроподстановки, которые просто заменяются на php-код, все остальное остается как есть. Ровно так же, как всякие #define и #include обрабатываются макропроцессором Си. Самый простой способ понять, что можно и что нельзя, и как - посмотреть, во что разворачиваются макроподстановки, в скомпилированных php-файлах.

И, да, то, что это просто макропроцессор, означает, что ты можешь сверху написать что-нибудь вроде
<?php use Foo\Bar; ?>
и это сработает. Но, конечно, это неэстетично.
 
Сверху