/** * Simple.h * * A very simple extension that does almost nothing * * @author Emiel Bruijntjes * @copyright 2013 Copernica BV */ #include #include #include /** * Namespace to use */ using namespace std; /** * Our own "my_plus" function that will be available in PHP * @param environment * @param params * @return Value */ static Php::Value my_plus(Php::Environment &env, Php::Parameters ¶ms) { string p1 = params[0]; string p2 = params[1]; cout << "global g1: " << env["g1"].stringValue() << endl; cout << "global g2: " << env["g2"].stringValue() << endl; Php::Global g(env["g3"]); g = "zo kan het ook"; string output = env.call("strtoupper","test in lowercase"); cout << "output: " << output << endl; return p1 + p2; } /** * Custom class that will be available in PHP */ class MyCustomClass : public Php::Base { public: }; // symbols are exported according to the "C" language extern "C" { // export the "get_module" function that will be called by the Zend engine PHPCPP_EXPORT void *get_module() { // create extension static Php::Extension extension("simple","1.0"); // define the functionsnm extension.add("my_plus", my_plus, { Php::ByVal("a", Php::stringType), Php::ByVal("b", Php::arrayType), Php::ByVal("c", "MyClass"), Php::ByRef("d", Php::stringType) }); // define classes extension.add("my_class", Php::Class()); // return the module entry return extension.module(); } }