注意: タスクを開始する前に、作業環境が構成されていることを確認する必要があります。つまり:
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
内のフォルダーに分割されます。
ほとんどの場合、あなたの仕事は、不足している機能を既存のコードに補うことになります。各タスクのデータセットは、テストでの検証を目的として厳密に定義されます。
最初のタスク (タスク 1) では、ストリート ファイターの戦闘機を操作する必要があります。
Fighter
クラスに基づいていくつかのファイターを作成し、テーブルのデータの一部を使用する必要があります。
名前 | 画像 |
---|---|
リュウ | https://bit.ly/2E5Pouh |
春麗 | https://bit.ly/2Vie3lf |
ケン・マスターズ | https://bit.ly/2VZ2tQd |
次に、 FightArena
クラスを操作してメソッドを実装する必要があります。
add
all
mostPowerful
(攻撃力は高くなりますが、体力は低くなります)mostHealthy
(攻撃力は低くなりますが、健康状態は高くなります)次のコマンドを実行して自分自身を確認できます。
./vendor/bin/phpunit --testsuite task1
2 番目のタスク (タスク 2) では、次の絵文字を返す単純なジェネレーター ( yield
を使用) を実装する必要があります。
”、”、”、”、”。
これを行うには、 EmojiGenerator
クラスにgenerate
メソッドを実装する必要があります。
次のコマンドを実行して自分自身を確認できます。
./vendor/bin/phpunit --testsuite task2
3 番目のタスク (タスク 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 - 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 の別のリポジトリに配置し、そこへのリンクを送信する必要があります。
問題がある場合は、課題のコメントで質問してください。
このリポジトリをフォークすることは禁止されています。