diff --git a/README.txt b/README.md similarity index 55% rename from README.txt rename to README.md index 17df1d249..e1941c60c 100644 --- a/README.txt +++ b/README.md @@ -1,19 +1,22 @@ This is the PHP port of Hamcrest Matchers ========================================= +[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/badges/quality-score.png?s=754f5c0556419fc6204917ca9a9dcf2fa2b45ed0)](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/) +[![Build Status](https://travis-ci.org/hamcrest/hamcrest-php.png?branch=master)](https://travis-ci.org/hamcrest/hamcrest-php) + Hamcrest is a matching library originally written for Java, but subsequently ported to many other languages. hamcrest-php is the offical PHP port of Hamcrest and essentially follows a literal translation of the original Java API for Hamcrest, with a few Exceptions, mostly down to PHP language barriers: - 1. instanceOf($theClass) is actually anInstanceOf($theClass) + 1. `instanceOf($theClass)` is actually `anInstanceOf($theClass)` - 2. both(containsString('a'))->and(containsString('b')) - is actually both(containsString('a'))->andAlso(containsString('b')) + 2. `both(containsString('a'))->and(containsString('b'))` + is actually `both(containsString('a'))->andAlso(containsString('b'))` - 3. either(containsString('a'))->or(containsString('b')) - is actually either(containsString('a'))->orElse(containsString('b')) + 3. `either(containsString('a'))->or(containsString('b'))` + is actually `either(containsString('a'))->orElse(containsString('b'))` 4. Unless it would be non-semantic for a matcher to do so, hamcrest-php allows dynamic typing for it's input, in "the PHP way". Exception are @@ -23,10 +26,10 @@ Exceptions, mostly down to PHP language barriers: 5. Several official matchers have not been ported because they don't make sense or don't apply in PHP: - - typeCompatibleWith($theClass) - - eventFrom($source) - - hasProperty($name) ** - - samePropertyValuesAs($obj) ** + - `typeCompatibleWith($theClass)` + - `eventFrom($source)` + - `hasProperty($name)` ** + - `samePropertyValuesAs($obj)` ** 6. When most of the collections matchers are finally ported, PHP-specific aliases will probably be created due to a difference in naming @@ -39,36 +42,36 @@ Usage To use Hamcrest, add the hamcrest directory to your include path and then simply include hamcrest.php to gain access to each of the Hamcrest matchers. - +assertThat('a', equalToIgnoringCase('A')); +``` hamcrest.php uses global function names. If you really need namespaced ones (which won't look as fluent), include "hamcrest/Hamcrest/Matchers.php" and "hamcrest/Hamcrest/MatcherAssert.php". - +Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A')); +``` PEAR Package ------------ @@ -76,20 +79,21 @@ PEAR Package You can now install Hamcrest using PEAR. Note that the channel is lowercase while the package is uppercase. - > pear channel-discover hamcrest.googlecode.com/svn/pear - > pear install hamcrest/Hamcrest +```cli +> pear channel-discover hamcrest.googlecode.com/svn/pear +> pear install hamcrest/Hamcrest +``` Assuming you have PEAR's library installation directory (e.g. /usr/bin/php) in your global include path, you only need to include hamcrest.php. - +require_once 'Hamcrest/hamcrest.php'; +assertThat('a', equalToIgnoringCase('A')); +``` ** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans] - The POPO thing is a joke. Java devs coin the term POJO's (Plain Old