Внимание: до начала выполнения задания следует убедиться, что у вас настроено рабочее окружение. А именно:
Рекомендуется использовать Vagrant и виртуальную машину Homestead. Подробнее здесь: https://laravel.com/docs/5.8/homestead
Установка показана в рабочем окружении OS Linux:
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
Все задания разделены по папкам внутри /src
.
Вашей задачей, в большинстве случаев, будет дополнить существующий код недостающей функциональностью. Набор данных для каждого задания будет жёстко задан с целью проверки в тестах.
В первом задании (Task1) необходимо работать с бойцами Street Fighter.
Вам необходимо создать несколько бойцов, опираясь на класс Fighter
,
и использовать часть данных из таблицы.
Name | Image |
---|---|
Ryu | https://bit.ly/2E5Pouh |
Chun-Li | https://bit.ly/2Vie3lf |
Ken Masters | https://bit.ly/2VZ2tQd |
Далее вам необходимо работать с классом FightArena
,
реализовав методы
add
all
mostPowerful
(больше атака, но меньше здоровье)mostHealthy
(меньше атака, но больше здоровье)Проверить себя можно запустив:
./vendor/bin/phpunit --testsuite task1
Во втором задании (Task2) нужно реализовать простой генератор (используя yield
), который возвращает следующие emoji:
'', '', '', '', ''.
Для этого нужно реализовать метод generate
в классе EmojiGenerator
.
Проверить себя можно запустив:
./vendor/bin/phpunit --testsuite task2
В третьем задании (Task 3) мы будем практиковаться со встроенным web-сервером php. Ваша задача состоит в том, чтобы отрендерить список созданных вами в задании 1 бойцов и отобразить страницу, используя встроенный web-сервер.
Для этого вам необходимо наполнить бойцовскую арену в файле index.php
и реализовать метод present
класса FightArenaHtmlPresenter
,
опираясь на код тестов к заданию.
Если вы используете Homestead, то для начала нужно остановить nginx
.
sudo pkill nginx
Затем запустить встроенный веб-сервер:
php -S 0.0.0.0:80 -t ./src/Task3
Мoжет потребоваться команда "sudo php -S 0.0.0.0:80 -t ./src/Task3".
Страница будет доступна в браузере по адресу:
http://192.168.10.10:80 - если используете homestead
http://127.0.0.1:80 - если запускаете с локальной машины
Часть кода уже содержится в файле index.php
.
Проверить себя можно запустив:
./vendor/bin/phpunit --testsuite task3
Вы уже, наверное, заметили, что для проверки заданий мы используем PHPUnit. Это необходимо для того, чтобы проверить соответсвуют ли ваши решения нашим ожиданиям (предложенной спецификации). Если вы ранее не были знакомы с PHPUnit, то не расстраивайтесь. Мы рассмотрим его в дальнейших лекциях более подробно.
На данном этапе можете считать, что это лишь автопроверка (как на codewars.com).
Вначале все тесты "красные", т.е. поломанные. Для того чтобы они стали рабочими (зелёными) и не было ошибок, вам необходимо реализовать необходимые решения.
Какой профит от тестов?
Чего делать не стоит
Запуск всех тестов:
./vendor/bin/phpunit
Запуск теста для конкретного задания:
./vendor/bin/phpunit --testsuite task1
В идеале необходимо разместить ваше решение в отдельном репозитории на Github или Bitbucket и прислать ссылку на него.
Задавайте вопросы в комментариях к заданию в случае возникновения проблем.
Форкать этот репозиторий запрещено!