Для выполнения данной задачи были использованы преимущетва ООП, в частности, один из главных его принципов - Полиморфизм. ОО подход отлично подходит для создания масштабируемых приложений.
Требования:
Склонируйте репозиторий на свою машину
git clone https://github.com/makaziev/bm.git
Установите зависимости через Composer
composer install
Чтобы протестировать код, из корня проекта введите команду:
composer test