/ManoWars

Sample code for teaching about Unit Tests and TDD and Composer

Primary LanguagePHP

Mano Wars

Build Status Scrutinizer Quality Score Code Coverage

Stories in Ready

  • Author: Rafael Dohms - rdohms @ phpsp .org . br
  • Author: Augusto Pascutti - augusto @ phpsp . org . br
  • Author: Rogerio Prado de Jesus - rogeriopradoj @ gmail . com

Pequeno projeto para aplicar o uso de ferramentas de qualidade em PHP.

Existem testes para as classes existentes assim como um build.xml para utilização do PHING para construção de pacote.

O projeto pode ser facilmente estendido e utilizado para testes próprios.

Em setembro de 2013 a estrutura do projeto foi refeita para usar o Composer para gestão das dependências.

Divirtam-se!

Palestras relacionadas

Requisitos

  • PHP 5.3+
  • Composer (que irá gerenciar as dependências e cuidar do autoload. Veja o composer.json para a lista completa)
  • Xdebug (é usado para geração de relatórios no build)
  • Git (é usado para geração de relatórios no build)

Instalação

Estrutura de diretórios:

  • build.xml - utilizado pelo PHING
  • composer.json - config do Composer, para gerenciamento das dependências
  • composer.lock - trava das dependências do Composer
  • init.php - arquivo de inicialização da app
  • libs - aplicação
  • phpunit.xml.dist - config do PHPUnit, para testes unitários
  • public - deve ser o document root do apache
  • README.md - este arquivo
  • tests - testes unitários

Na raiz do projeto, use o Composer para instalar todas as dependências e geração do autoload.

$ composer install

Configure seu servidor web para usar o diretório public.

Se estiver usando PHP 5.4+, pode usar o servidor embutido:

$ php -S -t public localhost:9876

Pronto, a aplicação já deve ser acessível (no exemplo acima pelo endereço http://localhost:9876).

Execuções das demais ferramentas

Todos os comandos abaixo são executados na raiz do projeto, onde tem o arquivo "build.xml":

PHING

$ vendor/bin/phing

PHPUnit

$ vendor/bin/phpunit

PHP_Depend

$ vendor/bin/pdepend libs

PHPCPD

$ vendor/bin/phpcpd libs

PHP Code Sniffer

$ vendor/bin/phpcs --standard=Zend --report-summary init.php libs

PHP Mess Detector

$ vendor/bin/phpmd libs text cleancode,codesize,controversial,design,naming,unusedcode

PHP Documentator

$ vendor/bin/phpdoc.php --progressbar --sourcecode

PHP Loc

$ vendor/bin/phploc --progress libs tests init.php

Bitdeli Badge