# Snappy Extension for PHP

[![Linux](https://github.com/kjdev/php-ext-snappy/workflows/Linux/badge.svg?branch=master)](https://github.com/kjdev/php-ext-snappy/actions?query=workflow%3ALinux+branch%3Amaster)
[![Windows](https://github.com/kjdev/php-ext-snappy/workflows/Windows/badge.svg?branch=master)](https://github.com/kjdev/php-ext-snappy/actions?query=workflow%3AWindows+branch%3Amaster)

This extension allows Snappy.

Documentation for Snappy can be found at
[» http://google.github.io/snappy/](http://google.github.io/snappy/).

## Build from sources

    % git clone --recursive --depth=1 https://github.com/kjdev/php-ext-snappy.git
    % cd php-ext-snappy
    % phpize
    % ./configure
    % make
    % make install

To use the system library

``` bash
% ./configure --with-snappy-includedir=/usr
```

## Distribution binary packages

### Fedora / CentOS / RHEL

RPM packages of this extension are available in [» Remi's RPM repository](https://rpms.remirepo.net/) and are named **php-snappy**.

## Configuration

php.ini:

    extension=snappy.so

## Function : snappy_compress

string snappy_compress( string $data )

### parameters

data:

    The data to compress.

### return values

The compressed string or FALSE if an error occurred.

## Function : snappy_uncompress

string snappy_uncompress( string $data )

### parameters

name:

    The data compressed by snappy_gzcompress(). 

### return values

The original uncompressed data or FALSE on error.

## Example

    $compressed = snappy_compress('Compress me');

    $uncompressed = snappy_uncompress($compressed);

    echo $uncompressed;

## Ubuntu Tipps

snappy requires C++ and therefore might require for you to install the  g++ or build-essential package. 
    
If you get an error about "this file requires compiler and library support" you might need to enfore the compilation with

    $ export CXXFLAGS=-std=c++11
    $ phpize
    $ ./configure
    $ make
