Make Job::toString handle non-primitive parameters.
authordaniel <daniel.kinzler@wikimedia.de>
Wed, 23 Jan 2013 18:39:49 +0000 (19:39 +0100)
committerdaniel <daniel.kinzler@wikimedia.de>
Wed, 23 Jan 2013 18:39:49 +0000 (19:39 +0100)
Depending on PHP version, configuration and platform, Job::toString
would cause warnings like this if non-primitive parameters where
used in the job:

Notice: Array to string conversion in C:\xampp\htdocs\wikidata-client\includes\job\Job.php on line 245

This change takes care of providing a sane representation of
non-primitive values.

Change-Id: I00ac52d40d39d8219626f5116172950f1b7af381

includes/job/Job.php

index 927ca4e..5f3cdf5 100644 (file)
@@ -242,6 +242,13 @@ abstract class Job {
                                if ( $paramString != '' ) {
                                        $paramString .= ' ';
                                }
+
+                               if ( is_array( $value ) ) {
+                                       $value = "array(" . count( $value ) . ")";
+                               } else if ( is_object( $value ) && !method_exists( $value, '__toString' ) ) {
+                                       $value = "object(" . get_class( $value ) . ")";
+                               }
+
                                $paramString .= "$key=$value";
                        }
                }