| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | <?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\Finder\Comparator;/** * @author Fabien Potencier <fabien@symfony.com> */class Comparator{    private $target;    private $operator = '==';    public function __construct(string $target = null, string $operator = '==')    {        if (null === $target) {            trigger_deprecation('symfony/finder', '5.4', 'Constructing a "%s" without setting "$target" is deprecated.', __CLASS__);        }        $this->target = $target;        $this->doSetOperator($operator);    }    /**     * Gets the target value.     *     * @return string     */    public function getTarget()    {        if (null === $this->target) {            trigger_deprecation('symfony/finder', '5.4', 'Calling "%s" without initializing the target is deprecated.', __METHOD__);        }        return $this->target;    }    /**     * @deprecated set the target via the constructor instead     */    public function setTarget(string $target)    {        trigger_deprecation('symfony/finder', '5.4', '"%s" is deprecated. Set the target via the constructor instead.', __METHOD__);        $this->target = $target;    }    /**     * Gets the comparison operator.     *     * @return string     */    public function getOperator()    {        return $this->operator;    }    /**     * Sets the comparison operator.     *     * @throws \InvalidArgumentException     *     * @deprecated set the operator via the constructor instead     */    public function setOperator(string $operator)    {        trigger_deprecation('symfony/finder', '5.4', '"%s" is deprecated. Set the operator via the constructor instead.', __METHOD__);        $this->doSetOperator('' === $operator ? '==' : $operator);    }    /**     * Tests against the target.     *     * @param mixed $test A test value     *     * @return bool     */    public function test($test)    {        if (null === $this->target) {            trigger_deprecation('symfony/finder', '5.4', 'Calling "%s" without initializing the target is deprecated.', __METHOD__);        }        switch ($this->operator) {            case '>':                return $test > $this->target;            case '>=':                return $test >= $this->target;            case '<':                return $test < $this->target;            case '<=':                return $test <= $this->target;            case '!=':                return $test != $this->target;        }        return $test == $this->target;    }    private function doSetOperator(string $operator): void    {        if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) {            throw new \InvalidArgumentException(sprintf('Invalid operator "%s".', $operator));        }        $this->operator = $operator;    }}
 |