* @return mixed The validated input
*
* @throws InvalidArgumentException In case the input is not valid
- *
- * Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.
*/
public static function validateInput($caller, $input)
{
if (is_scalar($input)) {
return (string) $input;
}
- // deprecated as of Symfony 2.5, to be removed in 3.0
- if (is_object($input) && method_exists($input, '__toString')) {
- @trigger_error('Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
- return (string) $input;
+ if ($input instanceof Process) {
+ return $input->getIterator($input::ITER_SKIP_ERR);
+ }
+ if ($input instanceof \Iterator) {
+ return $input;
+ }
+ if ($input instanceof \Traversable) {
+ return new \IteratorIterator($input);
}
- throw new InvalidArgumentException(sprintf('%s only accepts strings or stream resources.', $caller));
+ throw new InvalidArgumentException(sprintf('%s only accepts strings, Traversable objects or stream resources.', $caller));
}
return $input;