Atención: antes de comenzar la tarea, debes asegurarte de tener configurado un entorno de trabajo. A saber:
Se recomienda utilizar Vagrant y la máquina virtual Homestead. Más detalles aquí: https://laravel.com/docs/5.8/homestead
La instalación se muestra en el entorno de trabajo del sistema operativo Linux:
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
Todas las tareas están divididas en carpetas dentro de /src
.
Su tarea, en la mayoría de los casos, será complementar el código existente con la funcionalidad que falta. El conjunto de datos para cada tarea se definirá estrictamente a efectos de verificación en las pruebas.
En la primera tarea (Tarea 1) debes trabajar con los luchadores de Street Fighter .
Necesitas crear algunos luchadores basados en la clase Fighter
y usar algunos de los datos de la tabla.
Nombre | Imagen |
---|---|
ryu | https://bit.ly/2E5Pouh |
Chun-Li | https://bit.ly/2Vie3lf |
Ken Maestros | https://bit.ly/2VZ2tQd |
A continuación necesitas trabajar con la clase FightArena
, implementando los métodos.
add
all
mostPowerful
(más ataque, pero menos salud)mostHealthy
(menos ataque, pero más salud)Puedes comprobarlo tú mismo ejecutando:
./vendor/bin/phpunit --testsuite task1
En la segunda tarea (Tarea 2), debes implementar un generador simple (usando yield
) que devuelva el siguiente emoji:
'', '', '', '', ''.
Para hacer esto, necesita implementar el método generate
en la clase EmojiGenerator
.
Puedes comprobarlo tú mismo ejecutando:
./vendor/bin/phpunit --testsuite task2
En la tercera tarea (Tarea 3) practicaremos con el servidor web PHP integrado. Tu tarea es mostrar la lista de luchadores que creaste en la tarea 1 y mostrar la página usando el servidor web integrado.
Para hacer esto, necesita llenar el campo de batalla en el archivo index.php
e implementar el método present
de la clase FightArenaHtmlPresenter
, basado en el código de prueba de la tarea.
Si está utilizando Homestead, primero debe detener nginx
.
sudo pkill nginx
Luego inicie el servidor web integrado:
php -S 0.0.0.0:80 -t ./src/Task3
Es posible que se requiera el comando "sudo php -S 0.0.0.0:80 -t ./src/Task3".
La página estará disponible en el navegador en:
http://192.168.10.10:80 - si utiliza Homestead
http://127.0.0.1:80 - si ejecuta desde una máquina local
Parte del código ya está contenido en el archivo index.php
.
Puedes comprobarlo tú mismo ejecutando:
./vendor/bin/phpunit --testsuite task3
Quizás ya hayas notado que usamos PHPUnit para verificar trabajos. Esto es necesario para comprobar si sus soluciones cumplen con nuestras expectativas (la especificación propuesta). Si no estaba familiarizado con PHPUnit anteriormente, no se preocupe. Veremos esto con más detalle en futuras conferencias.
En esta etapa, puedes asumir que esto es sólo una verificación automática (como en codewars.com).
Al principio, todas las pruebas son “rojas”, es decir roto. Para que funcionen (verde) y no haya errores, es necesario implementar las soluciones necesarias.
¿Cuál es el beneficio de las pruebas?
que no hacer
Ejecutando todas las pruebas:
./vendor/bin/phpunit
Ejecutar una prueba para un trabajo específico:
./vendor/bin/phpunit --testsuite task1
Lo ideal sería colocar su solución en un repositorio separado en Github o Bitbucket y enviarle un enlace.
Haga preguntas en los comentarios de la tarea si tiene algún problema.
¡ Está prohibido bifurcar este repositorio!