PHP 开发扩展 C++ 库:PHP-CPP
jopen
10年前
PHP-CPP是一个用于开发PHP扩展的C++库。它提供了一套详实易用的类,用于开发PHP扩展。
示例1:
Php::Value hello_world(){ return "hello world!";}
示例2:
#include <phpcpp.h> /** * Global variable that stores the number of times * the function updateCounters() has been called in total * @var int */ int invokeTotalCount = 0; /** * Global variable that keeps track how many times the * function updateCounters() was called during the * current request * @var int */ int invokeDuringRequestCount = 0; /** * Native function that is callable from PHP * * This function updates a number of global variables that count * the number of times a function was called */ void updateCounters() { // increment global counters invokeTotalCount++; invokeDuringRequestCount++; } /** * Switch to C context, because the Zend engine expects get get_module() * to have a C style function signature */ extern "C" { /** * Startup function that is automatically called by the Zend engine * when PHP starts, and that should return the extension details * @return void* */ PHPCPP_EXPORT void *get_module() { // the extension object static Php::Extension extension("my_extension", "1.0"); // install a callback that is called at the beginning // of each request extension.onRequest([]() { // re-initialize the counter invokeDuringRequestCount = 0; }); // add the updateCounter method to the extension extension.add("updateCounters", updateCounters); // return the extension details return extension; } }