1.1 --- a/php/sigfiles/generate.php Tue Nov 22 08:54:47 2016 +0100
1.2 +++ b/php/sigfiles/generate.php Mon Apr 24 12:39:46 2017 +0200
1.3 @@ -835,18 +835,9 @@
1.4 $i = 0;
1.5 foreach ($parameters as $parameter) {
1.6 if ($parameter['name'] != "...") {
1.7 - if ($i++ > 0) {
1.8 - print ", ";
1.9 - }
1.10 - $type = sanitizeType($parameter['type']);
1.11 - if ($type) {
1.12 - print "{$type} ";
1.13 - }
1.14 - if (@$parameter['isreference']) {
1.15 - print "&";
1.16 - }
1.17 - print "\${$parameter['name']}";
1.18 -
1.19 + $type = sanitizeType($parameter['type']);
1.20 + $nullable = false;
1.21 + $param_value = '';
1.22 if (@$parameter['isoptional']) {
1.23 if (array_key_exists('defaultvalue', $parameter)) {
1.24 $value = $parameter['defaultvalue'];
1.25 @@ -860,11 +851,33 @@
1.26 } else {
1.27 $value = "'{$value}'";
1.28 }
1.29 - print " = {$value}";
1.30 + $param_value = " = {$value}";
1.31 } else {
1.32 - print " = null";
1.33 + $nullable = true;
1.34 + if (!$type) {
1.35 + $param_value = " = null";
1.36 + }
1.37 }
1.38 }
1.39 +
1.40 + if ($i++ > 0) {
1.41 + print ", ";
1.42 + }
1.43 + if ($type) {
1.44 + if ($nullable) {
1.45 + print "?";
1.46 + }
1.47 + print "{$type} ";
1.48 + }
1.49 + if (@$parameter['isreference']) {
1.50 + print "&";
1.51 + }
1.52 + print "\${$parameter['name']}";
1.53 +
1.54 + if ($param_value) {
1.55 + print $param_value;
1.56 + }
1.57 +
1.58 }
1.59 }
1.60 }
1.61 @@ -876,6 +889,10 @@
1.62 function print_parameters_ref ($paramsRef) {
1.63 $i = 0;
1.64 foreach ($paramsRef as $paramRef) {
1.65 + /* @var $paramRef ReflectionParameter */
1.66 + if ($paramRef->allowsNull()) {
1.67 + echo '?';
1.68 + }
1.69 if ($paramRef->isArray()) {
1.70 print "array ";
1.71 } else {
1.72 @@ -1577,7 +1594,6 @@
1.73 'bitmask',
1.74 'name',
1.75 'number',
1.76 - 'void',
1.77 'scalar',
1.78 ])) {
1.79 return '';