Ответы пользователя по тегу Symfony
  • Фильтрация по большому количеству параметров QueryBuilder, какие есть варианты?

    passionkillah
    @passionkillah
    Backend-разработчик
    Можно сделать интерфейс для фильтров и реализовывать его для каждого конкретного фильтра. В нем будут методы для получения алиаса (для того, чтобы превратить массив фильтров из запроса в массив классов), установления значения фильтра, а также добавления условия в queryBuilder. Получая из запроса массив фильтров, собираем массив классов, реализующих этот интерфейс (можно, кстати, сделать коллекцию, но это по желанию) и в репозитории проходимся по нему циклом и для каждого элемента вызываем метод, который добавляет условия к текущему queryBuilder'у.
    Ответ написан
    Комментировать
  • Laravel vs Symfony?

    passionkillah
    @passionkillah
    Backend-разработчик
    Выше в комментариях вы сами ответили на свой вопрос: используйте CMS. До окружающих вы смогли донести то, чего вы хотите добиться, только написав фразу "наподобие плагинов wordpress". Обосновать же, почему вам необходимо сделать два обособленных модуля в рамках одного проекта, вы не смогли.
    Ответ написан
  • Symfony - разделение на модули?

    passionkillah
    @passionkillah
    Backend-разработчик
    Можно действительно разделить приложение на бандлы, хотя разработчики Symfony не рекомендуют такую структуру проекта, начиная с 4 версии.

    Лично я бы сделал разделение по доменному слою: для каждой сущности выделял бы по сервису + репозиторию. А контроллеры бы разграничил просто по уровню доступа, а шаблоны - по папкам. Миграции бы оставил в одном месте в том случае, если БД у вас одна: в противном случае это имеет мало смысла
    Ответ написан
  • Является ли доступ к env параметрам минуя конфиг плохой практикой?

    passionkillah
    @passionkillah
    Backend-разработчик
    Я бы, пожалуй, не советовал так делать, т.к это, по сути, мало отличается от использования глобальных переменных. Почему бы не внедрять ваш класс-сценарий работы в другой класс через конструктор точно так же? Я думаю, что это оптимальное решение, тем более что для внедрения вашего класса-сценария вам уже не придется ничего прописывать в кофиги.
    Ответ написан
    1 комментарий
  • Как заполнить таблицу базы данных в symfony?

    passionkillah
    @passionkillah
    Backend-разработчик
    Обычно я, при необходимости заполнить БД, использую миграции, где пишу запросы на чистом SQL. Не стоит вызывать EntityManager и тем более протаскивать контейнер целиком в миграции, как писали выше - это плохая практика.
    Фикстуры, как здесь уже написали, - тестовая история, хотя никто вам не запрещает их использовать.
    Ответ написан
    Комментировать
  • Symfony, SPA аутентификация, какова лучшая практика в настоящий момент?

    passionkillah
    @passionkillah
    Backend-разработчик
    Security прекрасно может быть использован в REST, потому что он, по сути, просто предоставляет вам middleware для аутентификации пользователя, запускающееся при каждом запросе к вашему API. Саму же реализацию вы можете как выбрать из готовых, так и написать собственную. А UserProvider в свою очередь предоставляет вам доступ к объекту текущего пользователя внутри вашего кода, что весьма удобно.

    Действительно, JWT достаточно, и никто не запрещает вам сделать реализацию без компонента security, однако его использование будет существенно удобнее при использовании этого бандла, который взаимодействует с security. В случае с ним вам не нужно будет даже писать реализацию middleware.
    Ответ написан
    2 комментария
  • Как правильно передавать разрешения с токеном в API?

    passionkillah
    @passionkillah
    Backend-разработчик
    Если у Вас API + отдельный фронт - то мало смысла явно передавать на фронт разрешения. Вам достаточно будет при запросе ресурса получать текущего пользователя по токену, проверять его права и отдавать 403 (или 401, если пользователь не предоставил токен вовсе), если их недостаточно для доступа к ресурсу.
    В свою очередь на фронте Вы будете обрабатывать код ответа и выводить на экран то, что нужно.
    Ответ написан