注意:在开始任务之前,您应该确保您已经配置好工作环境。即:
推荐使用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 Web 服务器进行练习。您的任务是渲染您在任务 1 中创建的战士列表,并使用内置 Web 服务器显示页面。
为此,您需要在index.php
文件中填充战斗竞技场,并根据任务的测试代码实现FightArenaHtmlPresenter
类的present
方法。
如果您使用 Homestead,那么首先您需要停止nginx
。
sudo pkill nginx
然后启动内置的Web服务器:
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 上的单独存储库中,并发送指向它的链接。
如果您有任何问题,请在作业评论中提出问题。
禁止分叉此存储库!