summaryrefslogtreecommitdiff
path: root/tests/cpp/include/variables/013-017-calling-php-functions.h
blob: 94367e04d1887d7ba1b8995f084085d063a00e3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
 *
 *  Test call function
 *	013-calling-php-functions.phpt
 *	...
 *	017-calling-php-functions.phpt
 *
 */


/**
 *  Set up namespace
 */
namespace TestVariables {


	/*
	 * Test call function from user space
	 */
	void fnFromUserSpace(void)
	{


	    Php::out << "fnFromUserSpace" << std::endl;
	    
	    Php::Value param5;
	    param5.set(0, "param5");
	    param5.set(1, 3.14159265359);
	    param5.set(2, 28032014);
	    param5.set("key", "value");

		auto timeZone     = Php::Object("DateTimeZone", "Asia/Yekaterinburg");
		Php::Value param6 = Php::Object("DateTime", "2014-03-28 19:42:15", timeZone);
			    
	    // call a function from user space
	    Php::call("some_function", "param1");
	    Php::call("some_function", "param1", "param2");
	    Php::call("some_function", "param1", "param2", "param3");
	    Php::call("some_function", "param1", "param2", "param3", "param4");
	    Php::call("some_function", "param1", "param2", "param3", "param4", param5);
	    Php::call("some_function", "param1", "param2", "param3", "param4", param5, param6);
	    Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7");
	    Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8");
	    Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9");
	    Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10");

	}

	/*
	 * Test call callback
	 */
	void fnCallback(Php::Parameters &params)
	{
	    Php::out << "call callback" << std::endl;

		Php::Value callback = params[0];

	    
	    Php::Value param5;
	    param5.set(0, "param5");
	    param5.set(1, 3.14159265359);
	    param5.set(2, 28032014);
	    param5.set("key", "value");

		auto timeZone     = Php::Object("DateTimeZone", "Asia/Yekaterinburg");
		Php::Value param6 = Php::Object("DateTime", "2014-03-28 19:42:15", timeZone);
			    
	    // call a function from user space
	    callback("param1");
	    callback("param1", "param2");
	    callback("param1", "param2", "param3");
	    callback("param1", "param2", "param3", "param4");
	    callback("param1", "param2", "param3", "param4", param5);
	    callback("param1", "param2", "param3", "param4", param5, param6);
	    callback("param1", "param2", "param3", "param4", "param5", "param6", "param7");
	    callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8");
	    callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9");
	    callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10");

	}


/**
 *  End of namespace
 */
}