• Отдельная папка в Controllers для каждой роли?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Нормально ли для каждой роли делать отдельную папку в Controllers и почти дублировать все контроллеры, чуть их модифицируя?
    Нет. Если даже отбросить все прочие "но", представьте, чего Вам будет стоить ввести новую роль в систему?! Это же будет полный ахтунг!

    Также получается и роуты дублируются... и виды.
    Тем более.

    Есть просто мысль, что я много кода дублирую, нормально ли это?
    Нет, не нормально. Честно говоря, я не понимаю, как Вы смогли изучить Laravel, при этом обойдя вниманием один из основополагающих принципов разработки DRY.

    Для ролей и разрешений использую "laravel spatie permission".
    Честно говоря, не знаю что это, но если текущий модуль обслуживания прав/привилегий/ролей/управления доступом (и т.п.) - Вас чем-то не устраивает или заставляет(?) Вас нарушать основополагающие принципы разработки - нужно просто найти другой, более подходящий под Ваши конкретные задачи.
    Ответ написан
    4 комментария
  • Отдельная папка в Controllers для каждой роли?

    @jazzus
    Дублировать код ненормально. Попытка провести рефакторинг дублирующего кода, когда идеи могут меняться на ходу, а исправлять в 10 файлах - вас в этом убедит. По поводу проверки доступа в Laravel уже давно все придумано. Добавить к этому связи между таблицами roles, perms и users (многие ко многим), добавить в таблицу роли и разрешения и можно использовать без модулей. И даже здесь проверки делать не по ролям, а по доступу (таблица perms) т.к. доступы у ролей могут пересекаться. Готовых описаний как точно сделать в Интернете полно. Там элементарно. Можно еще добавить булеан поле active к user_role, чтобы можно было быстро деактивировать роль пользователя (у пользователя может быть несколько ролей) с сохранением истории для мгновенного восстановления. Это можно юзать при модерации юзеров с минимумом кода и без ведения логов (получаешь inactive roles пользователя и делаешь active true)
    Ответ написан
    Комментировать
  • Почему медленно загружается страница на PHP, которая берёт данные из MySQL?

    @Lex85
    По моему опыту, дёргать таблицу в цикле — плохая идея. Попробуйте сначала получать все данные, а потом в цикле их разбирать.
    Ответ написан
    1 комментарий