Я собираюсь начать рефакторинг всего моего приложения Laravel в соответствии с самыми современными стандартами сегодня.Вот как должно быть структурировано или создано приложение Ideal Laravel.
Примечание: Это не жесткие правила, но будет проще поддерживать ваши приложения Laravel для будущих обновлений, если вы их структурируете.таким образом.
Контроллеры: Контроллеры должны иметь эти методы для создания, чтения, обновления и уничтожения определенной модели.Для простоты предположим, что наша модель Product :
- index () - Возвращает список продуктов.
- create () - Itпокажет форму для создания модели.(При необходимости)
- store () - в нем будет храниться информация о продукте, полученная из формы создания.
- show () - будет возвращаться конкретный продукт.
- edit () - Появится форма для редактирования любого продукта.
- update () - Это обновит любой конкретный продукт.
- destroy () - Это удалит конкретный продукт.
Маршруты: Маршруты будут следовать одинаковому шаблону для разных моделей.Вот маршруты, которые будут вызывать указанные выше функции в контроллере для конкретной модели, в данном случае products.
- / products - GET - ProductController @ index
- / products /create - GET - ProductController @ create
- / products - POST - ProductController @ store
- / products / {id} - GET - ProductController @ show
- / products / {id} / edit - GET - ProductController @ edit
- / products / {id} - PATCH - ProductController @ update
- / products / {id} - DELETE - ProductController @ destroy
Models : Теперь все все, что касается базы данных (запросы, сложные запросы, отношения), будет храниться в вашей модели (в данном случае app / Product.php).Нет определенных функций, которые вы можете использовать в модели.Таким образом, вы можете поместить все свои запросы, и данные обработки из запросов будут сохранены как функции в Model.
Представления : для самой базовой модели потребуется create
, edit
, index
и show
просмотров.Внутри каталога views вы можете создавать разные каталоги для разных моделей.В этом случае в каталоге views будет каталог products , который будет содержать все приведенные выше представления, а также дополнительные представления, которые могут ему понадобиться.
Я работал над некоторыми действительно сложными приложениями в Laravel.И это структура, которой я следую, чтобы избежать путаницы при создании или обновлении кода приложения.Мне даже не нужно запоминать случайное имя, которое я дал некоторому представлению, потому что все правильно структурировано и полностью основано на имени контроллера.
Некоторые контроллеры не требуют всех этих маршрутов и функций,в этом случае вы все равно можете следовать этому методу, не будучи запутанными.