diff options
Diffstat (limited to 'Examples')
-rw-r--r-- | Examples/Extension/Makefile | 21 | ||||
-rw-r--r-- | Examples/Extension/extension.cpp | 27 | ||||
-rw-r--r-- | Examples/Extension/extension.php | 10 | ||||
-rw-r--r-- | Examples/FunctionVoid/Makefile | 21 | ||||
-rw-r--r-- | Examples/FunctionVoid/functionvoid.cpp | 43 | ||||
-rw-r--r-- | Examples/FunctionVoid/functionvoid.php | 13 | ||||
-rw-r--r-- | Examples/simple/simple.cpp | 23 |
7 files changed, 153 insertions, 5 deletions
diff --git a/Examples/Extension/Makefile b/Examples/Extension/Makefile new file mode 100644 index 0000000..3815a68 --- /dev/null +++ b/Examples/Extension/Makefile @@ -0,0 +1,21 @@ +CPP = g++ +RM = rm -f +CPP_FLAGS = -Wall -c -I. -O2 -std=c++11 + +LD = g++ +LD_FLAGS = -Wall -shared -O2 +RESULT = extension.so + +SOURCES = $(wildcard *.cpp) +OBJECTS = $(SOURCES:%.cpp=%.o) + +all: ${OBJECTS} ${RESULT} + +${RESULT}: ${OBJECTS} + ${LD} ${LD_FLAGS} -o $@ ${OBJECTS} -lphpcpp + +clean: + ${RM} *.obj *~* ${OBJECTS} ${RESULT} + +${OBJECTS}: + ${CPP} ${CPP_FLAGS} -fpic -o $@ ${@:%.o=%.cpp} diff --git a/Examples/Extension/extension.cpp b/Examples/Extension/extension.cpp new file mode 100644 index 0000000..99b88ea --- /dev/null +++ b/Examples/Extension/extension.cpp @@ -0,0 +1,27 @@ +/** + * extension.cpp + * @Author Jasper van Eck + * + * An example file to show the working of an extension. + */ +// library include +#include <phpcpp.h> + +/** + * Namespace to use + */ +using namespace std; + +// 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("my_simple_extension","1.0"); + + // return the extension module + return extension.module(); + } +} diff --git a/Examples/Extension/extension.php b/Examples/Extension/extension.php new file mode 100644 index 0000000..141efe6 --- /dev/null +++ b/Examples/Extension/extension.php @@ -0,0 +1,10 @@ +<?php +/* + * extension.php + * @Author Jasper van Eck + * + * An example file to show the working of an extension. + */ + +// print all the extensions currently loaded.\ +print_r(get_loaded_extensions()); diff --git a/Examples/FunctionVoid/Makefile b/Examples/FunctionVoid/Makefile new file mode 100644 index 0000000..9adc142 --- /dev/null +++ b/Examples/FunctionVoid/Makefile @@ -0,0 +1,21 @@ +CPP = g++ +RM = rm -f +CPP_FLAGS = -Wall -c -I. -O2 -std=c++11 + +LD = g++ +LD_FLAGS = -Wall -shared -O2 +RESULT = functionvoid.so + +SOURCES = $(wildcard *.cpp) +OBJECTS = $(SOURCES:%.cpp=%.o) + +all: ${OBJECTS} ${RESULT} + +${RESULT}: ${OBJECTS} + ${LD} ${LD_FLAGS} -o $@ ${OBJECTS} -lphpcpp + +clean: + ${RM} *.obj *~* ${OBJECTS} ${RESULT} + +${OBJECTS}: + ${CPP} ${CPP_FLAGS} -fpic -o $@ ${@:%.o=%.cpp} diff --git a/Examples/FunctionVoid/functionvoid.cpp b/Examples/FunctionVoid/functionvoid.cpp new file mode 100644 index 0000000..7ec7129 --- /dev/null +++ b/Examples/FunctionVoid/functionvoid.cpp @@ -0,0 +1,43 @@ +/** + * functionvoid.cpp + * @Author Jasper van Eck + * + * An example file to show the working of a void fucntion call. + */ + +/** + * Libraries used. + */ +#include <iostream> +#include <phpcpp.h> + +/** + * Namespace to use + */ +using namespace std; + +/** + * my_function_void() + */ +void my_function_void() +{ + cout << "In my_function_void()" << 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("my_function_void","1.0"); + + // add function to extension + extension.add("my_void_function", my_function_void); + + // return the extension module + return extension.module(); + } +} diff --git a/Examples/FunctionVoid/functionvoid.php b/Examples/FunctionVoid/functionvoid.php new file mode 100644 index 0000000..cc1840b --- /dev/null +++ b/Examples/FunctionVoid/functionvoid.php @@ -0,0 +1,13 @@ +<?php +/* + * functionvoid.php + * @Author Jasper van Eck + * + * An example file to show the working of a void function call. + */ + +/* + * Run the function with the given name. As you can see, the given name + * can be different from the actual function name. + */ +my_void_function(); diff --git a/Examples/simple/simple.cpp b/Examples/simple/simple.cpp index 7942a3c..7dc9305 100644 --- a/Examples/simple/simple.cpp +++ b/Examples/simple/simple.cpp @@ -73,13 +73,26 @@ Php::Value bubblesort(Php::Parameters ¶ms) return r; } + +void my_function() +{ + +} + +Php::Value my_integer_return() +{ + throw Php::Exception("er is iets mis"); + + return "abcd"; +} + /** * 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) +static Php::Value my_plus(Php::Parameters ¶ms) { Php::Value r(0); @@ -159,10 +172,10 @@ extern "C" // 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) + Php::ByVal("a", Php::numericType), + Php::ByVal("b", Php::numericType) + Php::ByVal("c", "MyClass"), + Php::ByRef("d", Php::stringType) }); extension.add("bubblesort", bubblesort); |