| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\Process;use Symfony\Component\Process\Exception\InvalidArgumentException;/** * ProcessUtils is a bunch of utility methods. * * This class contains static methods only and is not meant to be instantiated. * * @author Martin Hasoň <martin.hason@gmail.com> */class ProcessUtils{    /**     * This class should not be instantiated.     */    private function __construct()    {    }    /**     * Validates and normalizes a Process input.     *     * @param string $caller The name of method call that validates the input     * @param mixed  $input  The input to validate     *     * @return mixed     *     * @throws InvalidArgumentException In case the input is not valid     */    public static function validateInput(string $caller, $input)    {        if (null !== $input) {            if (\is_resource($input)) {                return $input;            }            if (\is_string($input)) {                return $input;            }            if (\is_scalar($input)) {                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, Traversable objects or stream resources.', $caller));        }        return $input;    }}
 |