Как подключиться к Laravel - PullRequest
0 голосов
/ 09 апреля 2019

Я могу разрабатывать пакеты Laravel и могу сделать пользовательский блейд, миграцию, модель, контроллер, маршрут из пакета. Но мой вопрос конкретно о том, как я могу подключиться к CRUD, который уже был собран по умолчанию, из пакета для его изменения.

Я начал свою карьеру в PHP с таких CMS, как WordPress, Drupal, а затем CakePHP, Laravel. Начиная с процедурного кодирования, ООП был кривой обучения и все еще остается кривой обучения для меня. Но обыскивая разные платформы, я понял, что одного и того же можно достичь разными способами.

Благодаря опыту разработки плагинов для WordPress легко расширить функциональность, используя действия и фильтры. С основной функциональностью, такой как:

Fetch form data (3 fields)
     hook here <---
Load form data (3 fields)
Submit form data (3 fields)
     hook here <---
Save form data (3 fields)

может быть легко изменено из плагина, например:

Fetch form data (3 fields)
     action hook <--- (hooked - added 2 fields)
Load form data (5 fields)
Submit form data (5 fields)
     filter hook <--- (hooked - added data of 2 additional fields)
Save form data (5 fields)

Но когда я в Laravel, я хочу добиться аналогичной функции, находящейся в области действия Laravel, как я могу?

Я понимаю, что использование @yield('my_hook') похоже на ловушку действий в WordPress. Но обнаружил, что, если я подключаю несколько к @yield, это переопределяется.

Я нашел несколько пакетов, таких как eventy с аналогичным подходом к действиям и фильтром WordPress, но на самом деле я прошу подход Laravel к этой проблеме.

Я сталкивался с Laravel Events , это решение для подключения как действия в WordPress? И ловушка фильтра, я думаю, мы можем расширить модель, чтобы изменить ее поведение. Но, боюсь, это все воображение, а может и не быть реальностью. Я понятия не имею об этом.

Могу ли я получить некоторое понимание этого вопроса?

1 Ответ

0 голосов
/ 09 апреля 2019

Как WordPress, так и Laravel являются фреймворками на совершенно другом уровне, поэтому сравнение может быть затруднено

В Laravel у вас есть инструменты для управления выводом (html-страница). @yield - это пример использования шаблонов Blade.

Кроме того, существуют методы для подключения определенных событий в рамках выполнения инфраструктуры (Laravel Events).

В Laravel вы работаете в настройке Model-View-Control, что означает, что вы можете / должны:

  • Создайте модель каждого объекта данных, который вы используете, и возложите на него ответственность за выполнение собственной работы. См. Также https://laravel.com/docs/5.8/eloquent#events для крючков
  • Создайте методы контроллера для каждого действия, которое вы хотите выполнить из внешнего интерфейса. Рекомендуется, чтобы эти методы были как можно более короткими. например максимум 10 строк.
  • Создание сложных шаблонов с использованием движка Blade Template

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...