chrismou/php-irc-text-formatting

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# IRC color/style library for PHP

PHP library for adding color and styling to IRC text output

[![Build Status](https://travis-ci.org/chrismou/php-irc-text-formatting.svg?branch=master)](https://travis-ci.org/chrismou/php-irc-text-formatting)
[![Test Coverage](https://codeclimate.com/github/chrismou/php-irc-text-formatting/badges/coverage.svg)](https://codeclimate.com/github/chrismou/php-irc-text-formatting/coverage)
[![Code Climate](https://codeclimate.com/github/chrismou/php-irc-text-formatting/badges/gpa.svg)](https://codeclimate.com/github/chrismou/php-irc-text-formatting)
[![Buy me a beer](https://img.shields.io/badge/donate-PayPal-019CDE.svg)](https://www.paypal.me/chrismou)

## About

This plugin is designed to provide IRC script writers a simple way to add colors/styles to their output. It should be compatible with most major PHP IRC bots, such as 
[Phergie](https://github.com/phergie/phergie-irc-bot-react).

## Install

The recommended method of installation is [through composer](http://getcomposer.org).

```
composer require chrismou/php-irc-text-formatting
```

## Configuration

To begin adding formatting to ouput text within your own applications, you'll need to include it in your project.  The simplest way of doing this is as follows:

```php
protected $format;

function __construct(array $config=array())
{
    $this->format = new \Chrismou\Irc\TextFormatting\Format;
    ...
}
```

Or, if you're only using it once, you can just include it directly in your method.

```php
public function foo
{
    $format = new \Chrismou\Irc\TextFormatting\Format;
    ...
}
```

## Usage

The 3 methods available are **color**, **style** and **rainbow**.

#### Color
This takes 3 parameters.  First is the text, second is the text color, third is the background colour (optional).

```php
$format = new \Chrismou\Irc\TextFormatting\Format;
$format->color("This text will be red", "red");
$format->color("This text will be blue on a green background", "blue", "green");
```

**Available color codes:**
* white
* black
* blue
* green
* red
* brown
* purple
* orange
* yellow
* lightGreen
* teal
* cyan
* lightBlue
* pink
* grey
* lightGrey


#### Style
This takes 2 parameters.  First is the text, second is the style to use.

```php
$format = new \Chrismou\Irc\TextFormatting\Format;
$format->style("This text will be underlined", "underline");
```

**Available style codes:**
* bold
* underline
* reverse (switches foreground and background color)

I've purposely excluded strikethrough and italic codes as support for them among IRC clients is fairly poor.

#### Rainbow
This takes a single parameter - the text - and gives the string a rainbow colouring.
```php
$format = new \Chrismou\Irc\TextFormatting\Format;
$format->rainbow("This text will be FABULOUS"); // produces rainbow coloured text
```

## Tests

To run the unit test suite:

```
curl -s https://getcomposer.org/installer | php
php composer.phar install
./vendor/bin/phpunit
```

Or to test on all supported versions, ensure docker is installed and running, then run:

```
curl -s https://getcomposer.org/installer | php
php composer.phar install
./vendor/bin/dunit
```

## License

Released under the BSD License. See `LICENSE`.