From 0fdfc4ced15ed29c407ad95cb0e1224711c1919d Mon Sep 17 00:00:00 2001 From: JasperVanEck Date: Thu, 28 Nov 2013 11:31:23 +0100 Subject: Added extension and functionvoid exmaple --- Examples/Extension/Makefile | 21 +++++++++++++++++++++ Examples/Extension/extension.cpp | 27 +++++++++++++++++++++++++++ Examples/Extension/extension.php | 10 ++++++++++ 3 files changed, 58 insertions(+) create mode 100644 Examples/Extension/Makefile create mode 100644 Examples/Extension/extension.cpp create mode 100644 Examples/Extension/extension.php (limited to 'Examples/Extension') 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 + +/** + * 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 @@ +