@Deamonik

Какие PHP стили записи существуют?

Всем привет!

Я пишу на Laravel мне не нравится что постоянно необходимо создавать 2 функции 1ну для отображения вьюхи 2 для самой логики например для обработки формы я в данный момент делаю это в 1ну функцию проверяю если пришел GET то отдаю вьюху если же пришел POST обрабатываю данные но мне такой метод записи не очень нравится если другие стили записи? Если да то какие и желательно с примерами
public function register(Request $request)
 {
    if ($request->isMethod('GET')) {
         return view('frontend.user.registration');
         // тут отдаю вьюху view
     }

      if ($request->isMethod('POST')) {
         // тут обрабатываю сам запрос
      }
}


Думаю всем понятно что делаю. Есть идеи записи в другом стиле?
  • Вопрос задан
  • 434 просмотра
Пригласить эксперта
Ответы на вопрос 3
stanislav-belichenko
@stanislav-belichenko
Backend PHP Developer
Я пишу на Laravel мне не нравится что постоянно необходимо создавать 2 функции 1ну для отображения вьюхи 2 для самой логики


Если коротко, то все ваши проблемы из-за того, что вы не совсем верно неверно поняли модель MVC. Если вы бы иначе построили структуру своего приложения, то вас не смущали бы "две функции".

Модель MVC, которой следуют практически все фреймворки, за которые вы сможете взяться, предполагает именно такую структуру - на каждое действие должен быть свой контроллер или его конкретный метод, при этом контроллер объединяет методы для какой-то одной логической единицы.

Попробуйте почитать именно что про MVC, и скорее всего вы оцените красоту такого подхода, так как в будущем именно он позволит вам, при росте приложения, быстро в нем ориентироваться, да и не только вам.

То, что вы в данный момент используете - это совсем не right way. И точно так же не right way делать в одном контроллере две "функции" (на самом деле - два метода класса вашего контроллера), одна из которых будет что-то вроде showRegister(), а другая - createRegister(). Правильный в вашем конкретном примере вариант - это разбить вашу логику на две (три) логические единицы (два/три контроллера или группы контроллеров), одна - показ страниц бекенда / фронтенда, а другая - обработка задач авторизации. В итоге у вас должно будет получиться что-то вроде:

app
...
├── Http
│   ├── Controllers
│   │   ├── Auth // 1. тут мы обрабатываем роуты, ответственные за авторизацию
│   │   │   ├── ForgotPasswordController.php
│   │   │   ├── LoginController.php
│   │   │   ├── RegisterController.php
│   │   │   └── ResetPasswordController.php
│   │   ├── Backend // 2. тут мы показываем бекенд
│   │   ├── Frontend // 3. тут мы показываем фронтенд
│   │   │   ...
│   │   ├── Controller.php
│   │       ...
...


В пунктах 2 и 3 вы в выводимых ими вьюхах используете роуты, которые про авторизацию, и у вас в итоге будет отдельная группа роутов вроде /auth/* и отдельные группы вроде /* (главная) и /admin/*.

Согласитесь, теперь все выглядит логично и понятно. И "стили записи" тут совершенно ни при чем.
Ответ написан
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Что значит необходимо создавать? Над вами стоит что ли проверяющий?

Пишите как хотите, отправьте в функцию хоть все запросы, а там уже разбирайтесь.

Пример вы сами привели, чем он вам не нравится?
Устраивает вас, остальное как бы не важно.
Ответ написан
Комментировать
djQuery
@djQuery
"Кодируем помаленьку" ("Сказка о Тройке")))
Почитайте доки к паре-тройке популярных фреймворков и выберите, к чему душа больше лежит))))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы