• Почему не импортируются модули?

    import "./client"
    Так делать нельзя, путь импорта всегда абсолютный. Если модуль вашего приложения в go.mod называется test, то импорт будет test/client
    Ответ написан
    4 комментария
  • Зачем нужен fosrestbundle в symfony?

    @Flying
    FOSRestBundle упрощает создание REST endpoints, преобразовывая имена методов в роуты + беря на себя ещё ряд базовых функций по упрощению создания REST API на Symfony. К примеру вам ведь нужно выдавать нормальные ответы в случае ошибок и exceptions, а ошибки, они ведь очень разные бывают. Неприятно когда у тебя вроде бы REST API, а он вдруг начинает HTML рендерить.

    В целом, безусловно, всё это можно сделать и руками, но по сути в итоге что-то близкое и получится, ну может кроме роутинга.

    В целом FOSRestBundle не особо большой, в экосистеме Symfony есть гораздо более мощные решения для создания API
    Ответ написан
  • Почему не виден сервис?

    catchError(this.handleError)
    У вас контекст теряется.

    Можно сделать так:
    catchError(error => this.handleError(error))
    Ответ написан
    1 комментарий
  • Какой подход для валидатора правильней?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Мне не равится ни тот ни другой подход.

    Исключение при валидации - это оксюморон.
    Исключение кидается кода функция не может выполнить свою работу. Проифнормировать о невалидности данных - это как раз функция функции валидации. Где тут исключительная ситуация?
    Вот для функции, скажем, сохранения данных, невалидные данные - это абсолютно законный повод кинуть исключение. Но для функции валидации - ни в коем случае.
    Функция проверки уникальности введенного логина не должна кидать исключение, если логин не уникальный.
    Исключение она должна кидать если БД недоступна.

    Но передача значения в параметр по ссылке - это как бы тоже адов кстыль, такая же архитектурная затычка, как global.
    Я бы архитектурно использовал первый подход, но добавил метод для получения текста ошибок.
    Ответ написан
    1 комментарий
  • Как прервать выполнение запроса?

    mtix
    @mtix
    Front-end developer
    В pipe заюзай оператор filter rxjs и отфильтруй значения с null.

    https://www.learnrxjs.io/operators/filtering/filte...
    Ответ написан
    1 комментарий
  • Где и кто должен делать валидацию?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    1. Да, но не вручную, а через форму, которая за это отвечает - через RegistrationForm. Это же замечательный функционал, глупо его игнорировать. Один раз описываете правила валидации и форма работает.

    2. Нет, они выполняют разные роли: форма занимается валидацией входящих данных, а AR-модель хранением. Я настоятельно не рекомендую тесно связывать формы с сущностями, т.е. наследовать одни от других. Их нужно держать раздельно: изменение AR-сущности User никогда не создаст вам проблем в формах, а изменение данных запроса и правил валидации формы RegistrationForm не навредит AR-сущности. Вы сможете менять их независимо друг от друга.

    3. Вы должны передать провалидированные данные от контроллера в сервис. А вот как вы это сделаете полностью на ваше усмотрение: грубо массивом, особым value-объектом или предусмотреть передачу заполненной формы RegistrationForm в сервис, который сам сможет извлечь данные и выполнить работу. Важный момент: данные должны быть полностью проверены. Сервис при этом может даже не знать кто его использует, главное соблюдать публичный интерфейс.
    Ответ написан
    6 комментариев