Как стать автором
Поиск
Написать публикацию
Обновить
7
0
Артём Венделев @vandy

Программист

Отправить сообщение
Вы про использование @ParamConverter?
В рамках Symfony я подобные вещи решал с помощью стандартного сериализатора.
И ни что не мешает его поставить в любой проект «composer require symfony/serializer».
/** @var Staff $data */
$data = $this->getSerializer()->deserialize(
    $request->getContent(),
    Staff::class,
    'json',
    []
);
$error = $this->getValidator()->validate($data);
if ($error->count()) {
   throw new ValidationException($error);
}


class Staff
{
    /**
     * @Assert\Valid
     * @var Person[]
     */
    protected array $person;
}


class Person implements PersonInterface
{
    /**
     * @Assert\NotBlank(message="Имя - обязательное поле")
     * @Assert\Length(
     *      min = 2,
     *      max = 100,
     *      minMessage = "Минимум 2 символа",
     *      maxMessage = "Максимум 100 символов",
     *      allowEmptyString = false
     * )
     * @Assert\Regex(
     *     pattern="/[a-zA-Z]+/i",
     *     match=false,
     *     message="Латиница запрещена для ввода"
     * )
     */
    protected string $firstName;
}
Это не дичь, а использование уже готового инструмента.
Часто, в работе требуется выполнять разные команды с параметрами в зависимости от настроек конкретного окружения. Постоянно вспоминать команды — напрягает, хочется как-то это упростить и автоматизировать.
Это удобно использовать при переключении между ветками проекта: выполнить миграции, подтянуть новые зависимости или запустить установку заново.

Конечно же обертку можно написать на любом языке, но Make уже дает готовый инструмент.
Как пример, список команд в одном наших из проектов:

=== Application ===
make configure — Настройка конфигов
make reinstall — полная переустановка сервиса (сборка контейнера, сброс БД, composer install)
make install — первоначальная установка или обновление сервиса (сборка контейнера, composer install)
make status — статус приложения
make clean — удаление всех файлов, которые созданы во время установки
make cache-clear — прогрев кэша (через приложение)
=== Tests ===
make app-ok — проверка всего сервиса
make cc — прогон тестов
=== Docker ===
make up — поднять сервис
make stop — остановить сервис
make down — остановка с удалением контейнера
make php-cli — войти в shell сервиса php
make nginx-cli — войти в shell сервиса nginx
make php-log — stdout сервиса php
make nginx-log — stdout сервиса nginx
=== DB ===
make migrate — накатка миграций
make remigrate — Очистка БД и выполнение миграций
Twitter отказался влиться в Google за $2,5 млрд — www.unova.ru/article/5750
т.е. все, лафа закончилась?
MS Project — тут удобней строить графики для начальства.
Confluence — база знаний (ТЗ и его обсуждение)
Jira — управление задачами и ресурсами
На данный момент API SchoolOut практически аналогичен API Mail.Ru


Мы специально сделали адаптер, который позволит разработчикам приложений для Mail.Ru быстро настроить приложение для работы на SchoolOut. Поэтому и документации очень похожи.
2

Информация

В рейтинге
1 364-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Senior