Установить advanced шаблон Yii2 фреймворка, в backend-приложении реализовать следующий закрытый функционал (доступ в backend-приложение должен производиться только по паролю, сложного разделения прав не требуется):
Написать класс/объект Apple с хранением яблок в БД MySql следуя ООП парадигме.
admin/Qwer1234
- упасть
- съесть ($percent - процент откушенной части)
- удалить (когда полностью съедено)
- цвет (устанавливается при создании объекта случайным)
- дата появления (устанавливается при создании объекта случайным unixTmeStamp)
- дата падения (устанавливается при падении объекта с дерева)
- статус (на дереве / упало)
- сколько съели (%)
- другие необходимые переменные, для определения состояния.
- висит на дереве
- упало/лежит на земле
- гнилое яблоко
- Пока висит на дереве - испортиться не может.
- Когда висит на дереве - съесть не получится.
- После лежания 5 часов - портится.
- Когда испорчено - съесть не получится.
- Когда съедено - удаляется из массива яблок.
$apple = new Apple('green');
echo $apple->color; // green
$apple->eat(50); // Бросить исключение - Съесть нельзя, яблоко на дереве
echo $apple->size; // 1 - decimal
$apple->fallToGround(); // упасть на землю
$apple->eat(25); // откусить четверть яблока
echo $apple->size; // 0,75
На странице в приложении должны быть отображены все яблоки, которые на этой же странице можно сгенерировать в случайном кол-ве соответствующей кнопкой.
Рядом с каждым яблоком должны быть реализованы кнопки или формы соответствующие функциям (упасть, съесть процент…) в задании.
Задача не имеет каких-либо ограничений и требований. Все подходы к ее решению определяют способность выбора правильного алгоритма при проектировании системы и умение предусмотреть любые возможности развития алгоритма. Задание должно быть выложено в репозиторий на gitHub, с сохранением истории коммитов. Креативность только приветствуется.