Achtung: Bevor Sie mit der Aufgabe beginnen, sollten Sie sicherstellen, dass Sie eine Arbeitsumgebung konfiguriert haben. Nämlich:
Es wird empfohlen, Vagrant und die virtuelle Maschine Homestead zu verwenden. Weitere Details hier: https://laravel.com/docs/5.8/homestead
Die Installation wird in der Arbeitsumgebung OS Linux angezeigt:
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
Alle Aufgaben sind in Ordner innerhalb /src
unterteilt.
Ihre Aufgabe wird in den meisten Fällen darin bestehen, den vorhandenen Code um die fehlende Funktionalität zu ergänzen. Der Datensatz für jede Aufgabe wird zum Zweck der Verifizierung in Tests streng definiert.
In der ersten Aufgabe (Aufgabe 1) müssen Sie mit Street Fighter -Kämpfern arbeiten.
Sie müssen einige Kämpfer basierend auf der Fighter
-Klasse erstellen und einige der Daten aus der Tabelle verwenden.
Name | Bild |
---|---|
Ryu | https://bit.ly/2E5Pouh |
Chun-Li | https://bit.ly/2Vie3lf |
Ken Masters | https://bit.ly/2VZ2tQd |
Als nächstes müssen Sie mit der FightArena
-Klasse arbeiten und die Methoden implementieren
add
all
mostPowerful
(mehr Angriff, aber weniger Gesundheit)mostHealthy
(weniger Angriff, aber mehr Gesundheit)Sie können sich selbst überprüfen, indem Sie Folgendes ausführen:
./vendor/bin/phpunit --testsuite task1
In der zweiten Aufgabe (Aufgabe2) müssen Sie einen einfachen Generator implementieren (mit yield
), der das folgende Emoji zurückgibt:
'', '', '', '', ''.
Dazu müssen Sie die generate
-Methode in der EmojiGenerator
-Klasse implementieren.
Sie können sich selbst überprüfen, indem Sie Folgendes ausführen:
./vendor/bin/phpunit --testsuite task2
In der dritten Aufgabe (Aufgabe 3) üben wir mit dem integrierten PHP-Webserver. Ihre Aufgabe besteht darin, die Liste der Kämpfer, die Sie in Aufgabe 1 erstellt haben, zu rendern und die Seite mithilfe des integrierten Webservers anzuzeigen.
Dazu müssen Sie die Kampfarena in der Datei index.php
füllen und die present
Methode der Klasse FightArenaHtmlPresenter
basierend auf dem Testcode für die Aufgabe implementieren.
Wenn Sie Homestead verwenden, müssen Sie zuerst nginx
stoppen.
sudo pkill nginx
Starten Sie dann den integrierten Webserver:
php -S 0.0.0.0:80 -t ./src/Task3
Eventuell ist der Befehl „sudo php -S 0.0.0.0:80 -t ./src/Task3“ erforderlich.
Die Seite ist im Browser verfügbar unter:
http://192.168.10.10:80 – wenn Sie Homestead verwenden
http://127.0.0.1:80 – wenn Sie von einem lokalen Computer aus ausführen
Ein Teil des Codes ist bereits in der Datei index.php
enthalten.
Sie können sich selbst überprüfen, indem Sie Folgendes ausführen:
./vendor/bin/phpunit --testsuite task3
Möglicherweise haben Sie bereits bemerkt, dass wir PHPUnit zur Überprüfung von Jobs verwenden. Dies ist notwendig, um zu prüfen, ob Ihre Lösungen unseren Erwartungen (dem Spezifikationsvorschlag) entsprechen. Wenn Sie mit PHPUnit bisher noch nicht vertraut waren, machen Sie sich keine Sorgen. Darauf werden wir in künftigen Vorträgen noch genauer eingehen.
Zum jetzigen Zeitpunkt können Sie davon ausgehen, dass es sich nur um eine automatische Prüfung handelt (wie bei codewars.com).
Zunächst sind alle Tests „rot“, d. h. gebrochen. Damit sie funktionieren (grün) und keine Fehler auftreten, müssen Sie die erforderlichen Lösungen implementieren.
Wie hoch ist der Gewinn aus Tests?
Was man nicht tun sollte
Alle Tests ausführen:
./vendor/bin/phpunit
Ausführen eines Tests für einen bestimmten Job:
./vendor/bin/phpunit --testsuite task1
Idealerweise platzieren Sie Ihre Lösung in einem separaten Repository auf Github oder Bitbucket und senden einen Link dorthin.
Stellen Sie in den Kommentaren zur Aufgabe Fragen, wenn Sie Probleme haben.
Das Forken dieses Repositorys ist verboten !