summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-03 18:03:39 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-03 18:03:39 +0100
commit70986b4bcdf7793c4bb8a4e14d91e6531c95f651 (patch)
tree3009209b9fbcb3d51bc117061a766341c8a71a24 /Examples
parent8f24af4c28e74ef1769aef6ab00c480e09be7453 (diff)
work in progress for support for creating object instances
Diffstat (limited to 'Examples')
-rw-r--r--Examples/CppClassesInPhp/Makefile2
-rw-r--r--Examples/CppClassesInPhp/cppclassinphp.cpp7
-rw-r--r--Examples/CppClassesInPhp/cppclassinphp.php23
3 files changed, 27 insertions, 5 deletions
diff --git a/Examples/CppClassesInPhp/Makefile b/Examples/CppClassesInPhp/Makefile
index 0260376..872cce3 100644
--- a/Examples/CppClassesInPhp/Makefile
+++ b/Examples/CppClassesInPhp/Makefile
@@ -4,7 +4,7 @@ CPP_FLAGS = -Wall -c -I. -g -std=c++11
PREFIX = /usr
#Edit these lines to correspond with your own directories
-LIBRARY_DIR = ${PREFIX}/lib/php5/20121212
+LIBRARY_DIR = ${PREFIX}/lib/php5/20090626
PHP_CONFIG_DIR = /etc/php5/cli/conf.d
LD = g++
diff --git a/Examples/CppClassesInPhp/cppclassinphp.cpp b/Examples/CppClassesInPhp/cppclassinphp.cpp
index 7ef4d12..2d17e19 100644
--- a/Examples/CppClassesInPhp/cppclassinphp.cpp
+++ b/Examples/CppClassesInPhp/cppclassinphp.cpp
@@ -44,13 +44,16 @@ public:
return 33;
}
- void myMethod(Php::Parameters &params)
+ Php::Value myMethod(Php::Parameters &params)
{
// check number of parameters
if (params.size() != 1) throw Php::Exception("Invalid number of parameters supplied");
std::cout << "myMethod is called." << std::endl;
- _x = params[0];
+
+ // construct a new class
+ return Php::Object(params[0]);
+
// std::cout << "get property1 " << value()["property1"] << std::endl;
//
diff --git a/Examples/CppClassesInPhp/cppclassinphp.php b/Examples/CppClassesInPhp/cppclassinphp.php
index b535f0e..c969a4c 100644
--- a/Examples/CppClassesInPhp/cppclassinphp.php
+++ b/Examples/CppClassesInPhp/cppclassinphp.php
@@ -5,13 +5,32 @@
*
* An example file to show the working of using a C++ class in PHP.
*/
+
+class TestClass
+{
+ public $x = 1223;
+
+ public function __construct()
+ {
+ echo("TestClass::__construct\n");
+ }
+
+}
//create a MyCustomClass object, which is an object of a C++ class
$object = new MyClass();
// run a function of the class
-$object->myMethod(1);
-$object->myMethod(2);
+$obj = $object->myMethod("MyClass");
+
+echo(get_class($obj)."\n");
+//echo($obj->format("Y-m-d")."\n");
+
+//echo($obj->x."\n");
+
+return;
+
+//$object->myMethod(2);
echo($object->property1."\n");
echo($object->property2."\n");