Atenção: antes de iniciar a tarefa, você deve certificar-se de ter um ambiente de trabalho configurado. Nomeadamente:
Recomenda-se usar o Vagrant e a máquina virtual Homestead. Mais detalhes aqui: https://laravel.com/docs/5.8/homestead
A instalação é mostrada no ambiente de trabalho do SO Linux:
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
Todas as tarefas são divididas em pastas dentro de /src
.
Sua tarefa, na maioria dos casos, será complementar o código existente com a funcionalidade que falta. O conjunto de dados para cada tarefa será estritamente definido para fins de verificação em testes.
Na primeira tarefa (Tarefa1) você precisa trabalhar com lutadores de Street Fighter .
Você precisa criar alguns lutadores baseados na classe Fighter
e usar alguns dados da tabela.
Nome | Imagem |
---|---|
Ryu | https://bit.ly/2E5Pouh |
Chun-Li | https://bit.ly/2Vie3lf |
Mestres Ken | https://bit.ly/2VZ2tQd |
Em seguida você precisa trabalhar com a classe FightArena
, implementando os métodos
add
all
mostPowerful
(mais ataque, mas menos saúde)mostHealthy
(menos ataque, mas mais saúde)Você pode verificar por si mesmo executando:
./vendor/bin/phpunit --testsuite task1
Na segunda tarefa (Tarefa2), você precisa implementar um gerador simples (usando yield
) que retorne o seguinte emoji:
'', '', '', '', ''.
Para fazer isso, você precisa implementar o método generate
na classe EmojiGenerator
.
Você pode verificar por si mesmo executando:
./vendor/bin/phpunit --testsuite task2
Na terceira tarefa (Tarefa 3) praticaremos com o servidor web PHP integrado. Sua tarefa é renderizar a lista de lutadores que você criou na tarefa 1 e exibir a página usando o servidor web integrado.
Para fazer isso, você precisa preencher a arena de luta no arquivo index.php
e implementar o método present
da classe FightArenaHtmlPresenter
, com base no código de teste da tarefa.
Se você estiver usando Homestead, primeiro você precisa parar nginx
.
sudo pkill nginx
Em seguida, inicie o servidor web integrado:
php -S 0.0.0.0:80 -t ./src/Task3
O comando "sudo php -S 0.0.0.0:80 -t ./src/Task3" pode ser necessário.
A página estará disponível no navegador em:
http://192.168.10.10:80 - se você estiver usando homestead
http://127.0.0.1:80 – se você executar em uma máquina local
Parte do código já está contido no arquivo index.php
.
Você pode verificar por si mesmo executando:
./vendor/bin/phpunit --testsuite task3
Você já deve ter notado que usamos PHPUnit para verificar jobs. Isto é necessário para verificar se as suas soluções atendem às nossas expectativas (a especificação proposta). Se você ainda não estava familiarizado com o PHPUnit, não se preocupe. Veremos isso com mais detalhes em palestras futuras.
Neste estágio, você pode assumir que se trata apenas de uma verificação automática (como em codewars.com).
A princípio, todos os testes são “vermelhos”, ou seja, quebrado. Para que funcionem (verdes) e não haja erros, é necessário implementar as soluções necessárias.
Qual é o lucro dos testes?
O que não fazer
Executando todos os testes:
./vendor/bin/phpunit
Executando um teste para um trabalho específico:
./vendor/bin/phpunit --testsuite task1
Idealmente, você deve colocar sua solução em um repositório separado no Github ou Bitbucket e enviar um link para ela.
Faça perguntas nos comentários da tarefa se tiver algum problema.
Bifurcar este repositório é proibido !