Size: a a a

Laravel для начинающих

2020 September 29

ЕК

Егор Карась... in Laravel для начинающих
Galèriarch the Kobanian 🐗
Лучше буду помалкивать...
ты воще кобан
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
Егор Карась
ты воще кобан
источник

O

Oleg in Laravel для начинающих
Немного не понял, как создать глобальную функцию (в которой можно взаимодействовать с моделями). Это хелпер, фасад или что-то еще? (чтобы код не плодить)
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
Oleg
Немного не понял, как создать глобальную функцию (в которой можно взаимодействовать с моделями). Это хелпер, фасад или что-то еще? (чтобы код не плодить)
источник

AH

Andrey Helldar in Laravel для начинающих
Oleg
Немного не понял, как создать глобальную функцию (в которой можно взаимодействовать с моделями). Это хелпер, фасад или что-то еще? (чтобы код не плодить)
Есть хелпер, есть фасад. Разные подходы и цели.

Если мелкая функция, то хелпер.
Создаётся просто:
1. Создаёшь файл app/helpers.php
2. В файле composer.json дополняешь блок "autoload":
"autoload": {
   "psr-4": {
       "App\\": "app/",
       "Database\\Factories\\": "database/factories/",
       "Database\\Seeders\\": "database/seeders/"
   },
   "files": [
       "app/helpers.php"
   ]
},

3. Всё.
В файле пишишь функции и они доступны глобально.


Если фасад, то:
1. создаёшь файл, например, app\Support\YourClass.php, заполняешь его методами (не статика);
2. создаёшь файл app\Facades\YourFacade;
2. наследуешь его от Illuminate\Support\Facades\Facade;
3. внутрь добавляешь один метод:
final class YourFacade extends Facade
{
   protected static function getFacadeAccessor()
   {
       return YourClass::class;
   }
}


4. В файл config/app.php в блок aliases добавляешь запись:
'YourClass' => 'App\Facades\YourFacade::class'

5. Всё. В нужных местах вызываешь \YourClass::yourMethod()

Минус: нет док-блоков для него и IDE не подскажет доступные методы.
Решение: https://github.com/andrey-helldar/laravel-ide-facades-helper
источник

O

Oleg in Laravel для начинающих
Я думаю просто, что хелпер это автономная фунция, без связи с другими моделями?
источник

O

Oleg in Laravel для начинающих
К примеру, обработка "даты", а не выборка строк из базы данных? Или это не так?
источник

k

kaktus778 in Laravel для начинающих
Егор Карась
Всегда так делаю
а я наоборот всегда на русский переключаю везде все)) хоть сам хохол))
источник

AH

Andrey Helldar in Laravel для начинающих
Oleg
Я думаю просто, что хелпер это автономная фунция, без связи с другими моделями?
Ну да. У неё не должно быть связей ни с кем.
источник

AH

Andrey Helldar in Laravel для начинающих
@darakanoit, либо свой руль создать
источник

O

Oleg in Laravel для начинающих
А нужно, чтобы $categories = Category::orderBy('id', 'desc') была в функции (и часть кода еще), чтобы можно было вызывать из create, edit (т.к. дублируется там), и в других контроллерах тоже
источник

AH

Andrey Helldar in Laravel для начинающих
Oleg
А нужно, чтобы $categories = Category::orderBy('id', 'desc') была в функции (и часть кода еще), чтобы можно было вызывать из create, edit (т.к. дублируется там), и в других контроллерах тоже
Это лучше в сервисы вынести (app\Services) и обращаться к ним.
источник

D

DK in Laravel для начинающих
Andrey Helldar
@darakanoit, либо свой руль создать
особо не варик.. дока рефлексией генериться
источник

D

DK in Laravel для начинающих
даже Rule::in нельзя юзать
источник

D

DK in Laravel для начинающих
in + implode
источник

D

DK in Laravel для начинающих
да думаю так оставлю пока
источник

k

kaktus778 in Laravel для начинающих
DK
особо не варик.. дока рефлексией генериться
а чем ты доку генеришь?) из комментов она генерится?
источник

D

DK in Laravel для начинающих
kaktus778
а чем ты доку генеришь?) из комментов она генерится?
на проекте свою реализацию сделали
источник

D

DK in Laravel для начинающих
смотрит роутер, формреквесты
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
DK
на проекте свою реализацию сделали
🚴
источник