Fork me on GitHub

PHP-CPP

A C++ library for developing PHP extensions.

What is PHP-CPP?

The PHP-CPP library is a C++ library for developing PHP extensions. It offers a collection of well documented and easy-to-use classes that can be used and extended to build native extensions for PHP.

Read the online documentation

Why PHP-CPP?

This C++ library makes building PHP extensions fun. Extensions built on top of PHP-CPP are easy to understand and simple to maintain, and your code looks great - and it gives a huge boost to your application!

Top 10 reasons to use PHP-CPP

See it in action

Do you want to see how fast a C++ extension is in real life? Check out this real life example script, and compare it with the same algorithm in C++.

See the example

The basics

Unlike regular PHP extensions - which are really hard to implement and require a deep knowledge of the Zend engine and pointer manipulation - extensions built with PHP-CPP are not difficult to develop at all.

Functions

The PHP-CPP library uses all the power offered by C++11 to convert the parameters and return values from your functions to/and from PHP.

Php::Value hello_world()
{
    return "hello world!";
}

The function above is a native C++ function. With PHP-CPP you can export this function to PHP with only one single C++ method call.

extension.add("hello_world", hello_world);

Parameters and return values

Working with parameters and return values is
just as easy.

Php::Value my_plus(Php::Parameters &parameters)
{
    return (int)parameters[0] + (int)parameters[1];
}

The PHP-CPP library ensures that the variables from PHP (which internally are complicated C structures), are automatically converted into integers, passed to your function, and that the return value of your "my_plus" function is also converted back into a PHP variable.

Contribute

This library is currently a work in progress, and it is an open source project. We are looking for people who'd like to contribute to it. Feel free to contribute!

Contribute now