davidjeddy/chicken-challenge

4小时内创建一个不依赖任何外部库或扩展的鸡。

0.1.7.5 2016-11-07 06:54 UTC

README

Chicken Challenge

要求

创建一个PHP类或类,该类实例化一个表示鸡(动物)的对象。你的鸡类应展示对面向对象编程原则的理解,包括但不限于

  • 继承
  • 封装
  • 单一责任。

你的鸡必须在没有任何外部依赖的情况下运行通过PHP解释器。它应遵循PSR-2标准,并包含单元测试。

假设

  • PHP、GiT、终端可访问
  • Composer可用于生成应用程序类自动加载器
  • Composer可用于检查PHP最小要求
  • 最小化第三方库使用,不应是演示的核心

徽章

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock available

SensioLabsInsight

安装

cd {project root}
git clone 

虚拟机/容器服务

如果Vagrant可用

vagrant up
vagrant ssh

如果docker可用(非常早期的alpha版本,效果可能因人而异)

docker-compose up --build
docker exec -it chickenchallenge_app_1 bash
apt-get update && apt-get install wget
  • 在容器内运行应用程序命令

安装依赖项

wget https://getcomposer.org.cn/composer.phar
php composer.phar install --profile --prefer-dist -o

运行应用程序

更改目录到项目的根目录

php ./index.php

测试

测试需要PHPUnit,最简单的方法是通过composer获取PHPUnit

cd {project root}
wget https://phar.phpunit.de/phpunit.phar
php ./vendor/bin/phpunit ./tests

编码风格

为了确保符合PSR-2标准,偶尔运行以下命令

wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
php phpcs.phar --standard=PSR2 --ignore="*/vendor/*","*/sapi/*" --report-diff=./PSR2.diff ./
patch -p0 -ui ./PSR2.diff

自动生成文档

wget http://phpdoc.org/phpDocumentor.phar
php phpDocumentor.phar -p -t ./sapi -d ./src
  • 注意:生成继承树的可视化需要GraphViz。