diff options
Diffstat (limited to 'tests/simple/simple.cpp')
-rw-r--r-- | tests/simple/simple.cpp | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/tests/simple/simple.cpp b/tests/simple/simple.cpp deleted file mode 100644 index 7942a3c..0000000 --- a/tests/simple/simple.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Simple.h - * - * A very simple extension that does almost nothing - * - * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> - * @copyright 2013 Copernica BV - */ -#include <string> -#include <iostream> -#include <phpcpp.h> - -/** - * Namespace to use - */ -using namespace std; - - -Php::Value bubblesort(Php::Parameters ¶ms) -{ - cout << "start bubblesort" << endl; - - // the array that was passed - Php::Value array(params[0]); - - cout << "go return" << endl; - - return array; - - // size of the array - int size = array.size(); - - cout << "convert to native" << endl; - - int *x = new int[size]; - for (int i=0; i<size; i++) x[i] = array[i]; - - cout << "converted" << endl; - - - // outer loop - for (int i=0; i<size; i++) - { - // left value - int left = x[i]; -// cout << "left: " << left << endl; - - // inner loop - for (int j=i+1; j<size; j++) - { - // right value - int right = x[j]; - - if (left < right) continue; - - // swap values - x[i] = right; - x[j] = left; - left = right; - } - } - - cout << "algorithm end" << endl; - - Php::Value r; - - for (int i=0; i<size; i++) r[i] = x[i]; - - - delete[] x; - - // done - return r; -} - -/** - * 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) -{ - Php::Value r(0); - - for (unsigned int i=0; i<params.size(); i++) r += params[i]; - - return r; - - -// int p1 = params[0]; -// int p2 = params[1]; -// return p1 + p2; -// -// 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 -{ -private: - int _x; - -public: - MyCustomClass() - { - _x = 3; - cout << "MyCustomClass::MyCustomClass" << endl; - cout << this << endl; - cout << _x << endl; - } - - virtual ~MyCustomClass() - { - cout << "MyCustomClass::~MyCustomClass" << endl; - } - - virtual void __construct() - { - cout << "MyCustomClass::__construct" << endl; - } - - virtual void __destruct() - { - cout << "MyCustomClass::__destruct" << endl; - } - - void myMethod(Php::Parameters ¶ms) - { - cout << "myMethod GETS CALLED!!!!" << endl; - cout << this << endl; - cout << _x << endl; -// cout << "A: " << _properties["a"] << endl; -// cout << "Z: " << _properties["z"] << endl; - } -}; - -// 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 functions - extension.add("my_plus", my_plus, { -// Php::ByVal("a", Php::numericType), -// Php::ByVal("b", Php::numericType) -// Php::ByVal("c", "MyClass"), -// Php::ByRef("d", Php::stringType) - }); - - extension.add("bubblesort", bubblesort); - - Php::Method<MyCustomClass> x(&MyCustomClass::myMethod); - - // define classes - extension.add("my_class", Php::Class<MyCustomClass>({ - Php::Public("a", 123), - Php::Protected("b", "abc"), - Php::Protected("myMethod", Php::Method<MyCustomClass>(&MyCustomClass::myMethod)), - Php::Public("__construct", Php::Method<MyCustomClass>(&MyCustomClass::__construct)) - })); - - // return the module entry - return extension.module(); - } -} - |