Attention : avant de démarrer la tâche, vous devez vous assurer que vous disposez d'un environnement de travail configuré. À savoir:
Il est recommandé d'utiliser Vagrant et la machine virtuelle Homestead. Plus de détails ici : https://laravel.com/docs/5.8/homestead
L'installation est affichée dans l'environnement de travail OS Linux :
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
Toutes les tâches sont divisées en dossiers dans /src
.
Votre tâche, dans la plupart des cas, consistera à compléter le code existant avec les fonctionnalités manquantes. L'ensemble des données pour chaque tâche sera strictement défini à des fins de vérification lors des tests.
Dans la première tâche (Tâche 1), vous devez travailler avec des combattants de Street Fighter .
Vous devez créer des combattants basés sur la classe Fighter
et utiliser certaines données du tableau.
Nom | Image |
---|---|
Ryû | https://bit.ly/2E5Pouh |
Chun-Li | https://bit.ly/2Vie3lf |
Ken Maîtres | https://bit.ly/2VZ2tQd |
Ensuite, vous devez travailler avec la classe FightArena
, en implémentant les méthodes
add
all
mostPowerful
(plus d'attaque, mais moins de santé)mostHealthy
(moins d’attaque, mais plus de santé)Vous pouvez vous vérifier en exécutant :
./vendor/bin/phpunit --testsuite task1
Dans la deuxième tâche (Tâche 2), vous devez implémenter un générateur simple (en utilisant yield
) qui renvoie l'emoji suivant :
'', '', '', '', ''.
Pour ce faire, vous devez implémenter la méthode generate
dans la classe EmojiGenerator
.
Vous pouvez vous vérifier en exécutant :
./vendor/bin/phpunit --testsuite task2
Dans la troisième tâche (Tâche 3), nous nous entraînerons avec le serveur Web PHP intégré. Votre tâche consiste à restituer la liste des combattants que vous avez créés lors de la tâche 1 et à afficher la page à l'aide du serveur Web intégré.
Pour ce faire, vous devez remplir l'arène de combat dans le fichier index.php
et implémenter la méthode present
de la classe FightArenaHtmlPresenter
, basée sur le code de test de la tâche.
Si vous utilisez Homestead, vous devez d'abord arrêter nginx
.
sudo pkill nginx
Démarrez ensuite le serveur Web intégré :
php -S 0.0.0.0:80 -t ./src/Task3
La commande "sudo php -S 0.0.0.0:80 -t ./src/Task3" peut être requise.
La page sera disponible dans le navigateur à l'adresse :
http://192.168.10.10:80 - si vous utilisez une propriété
http://127.0.0.1:80 - si vous exécutez à partir d'une machine locale
Une partie du code est déjà contenue dans le fichier index.php
.
Vous pouvez vous vérifier en exécutant :
./vendor/bin/phpunit --testsuite task3
Vous avez peut-être déjà remarqué que nous utilisons PHPUnit pour vérifier les tâches. Ceci est nécessaire afin de vérifier si vos solutions répondent à nos attentes (le cahier des charges proposé). Si vous n’étiez pas familier avec PHPUnit, ne vous inquiétez pas. Nous y reviendrons plus en détail dans les prochaines conférences.
A ce stade, vous pouvez supposer qu'il s'agit simplement d'une vérification automatique (comme sur codewars.com).
Au début, tous les tests sont « rouges », c'est-à-dire cassé. Pour qu'ils fonctionnent (verts) et qu'il n'y ait pas d'erreurs, vous devez mettre en œuvre les solutions nécessaires.
Quel est le bénéfice des tests ?
Ce qu'il ne faut pas faire
Exécution de tous les tests :
./vendor/bin/phpunit
Exécution d'un test pour une tâche spécifique :
./vendor/bin/phpunit --testsuite task1
Idéalement, vous devriez placer votre solution dans un référentiel distinct sur Github ou Bitbucket et lui envoyer un lien.
Posez des questions dans les commentaires sur le devoir si vous rencontrez des problèmes.
Le fork de ce dépôt est interdit !