주의: 작업을 시작하기 전에 작업 환경이 구성되어 있는지 확인해야 합니다. 즉:
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)에서는 스트리트 파이터 파이터와 함께 작업해야 합니다.
Fighter
클래스를 기반으로 일부 전투기를 생성하고 테이블의 일부 데이터를 사용해야 합니다.
이름 | 영상 |
---|---|
류 | https://bit.ly/2E5Pouh |
춘리 | https://bit.ly/2Vie3lf |
켄 마스터스 | https://bit.ly/2VZ2tQd |
다음으로 FightArena
클래스로 작업하여 메서드를 구현해야 합니다.
add
all
mostPowerful
(공격력은 높지만 체력은 낮음)mostHealthy
(공격력은 적지만 체력은 증가)다음을 실행하여 직접 확인할 수 있습니다.
./vendor/bin/phpunit --testsuite task1
두 번째 작업(Task2)에서는 다음 이모티콘을 반환하는 간단한 생성기( yield
사용)를 구현해야 합니다.
'', '', '', '', ''.
이렇게 하려면 EmojiGenerator
클래스에 generate
메서드를 구현해야 합니다.
다음을 실행하여 직접 확인할 수 있습니다.
./vendor/bin/phpunit --testsuite task2
세 번째 작업(작업 3)에서는 내장된 PHP 웹 서버를 사용해 연습해 보겠습니다. 당신의 임무는 작업 1에서 생성한 전투기 목록을 렌더링하고 내장된 웹 서버를 사용하여 페이지를 표시하는 것입니다.
이렇게 하려면 index.php
파일에서 전투 경기장을 채우고 작업에 대한 테스트 코드를 기반으로 FightArenaHtmlPresenter
클래스의 present
메서드를 구현해야 합니다.
Homestead를 사용하는 경우 먼저 nginx
중지해야 합니다.
sudo pkill nginx
그런 다음 내장 웹 서버를 시작하십시오.
php -S 0.0.0.0:80 -t ./src/Task3
"sudo php -S 0.0.0.0:80 -t ./src/Task3" 명령이 필요할 수 있습니다.
해당 페이지는 브라우저에서 다음 위치에서 사용할 수 있습니다.
http://192.168.10.10:80 - 농가를 사용하는 경우
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의 별도 저장소에 배치하고 이에 대한 링크를 보내야 합니다.
문제가 있으면 과제 댓글로 질문해주세요.
이 저장소를 포크하는 것은 금지되어 있습니다 !