Минимальный best practice при написании кода:
- Так как PHP 8 имеет возможность typehint, необходимо использовать это повсеместно, там где все переменные понятны и стоят конкретные typehint, можно опустить блок комментария
- При написании кода придерживаться принципов SOLID
- Не использовать нагруженные бандлы для простой задачи, что бы не тянуть лишнего кода (например не юзать fosUserBundle тк у нас юзеры простые)
- Каждый PHP файл должен начинаться с declare(strict_types=1);
- При возможности каждый новый класс должен быть final, ****исключения составляют Entity файлы
- Использовать интерфейсы при создании сервисов
- Все текстовые значение, должны быть оформлены через константы
- Любой метод класса и его параметры по возможности делать private
- Не использовать сокращения при нейминге классов и параметров классов
- При проектировании сущностей использовать uuid в качестве id
- Большинство сущностей обязательно должно иметь время создания и апдейта
- Обязательное покрытие Unit тестами всех классов (кроме DTO, Model, Entity, Repository классов)
- Обязательное покрытие Functional тестами всех API методов
- Обязательное использование Fixture для тестирования