%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11584/cwd/html/water/vendor/phar-io/version/src/ |
Upload File : |
<?php /* * This file is part of PharIo\Version. * * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PharIo\Version; class VersionConstraintParser { /** * @param string $value * * @return VersionConstraint * * @throws UnsupportedVersionConstraintException */ public function parse($value) { if (strpos($value, '||') !== false) { return $this->handleOrGroup($value); } if (!preg_match('/^[\^~\*]?[\d.\*]+$/', $value)) { throw new UnsupportedVersionConstraintException( sprintf('Version constraint %s is not supported.', $value) ); } switch ($value[0]) { case '~': return $this->handleTildeOperator($value); case '^': return $this->handleCaretOperator($value); } $version = new VersionConstraintValue($value); if ($version->getMajor()->isAny()) { return new AnyVersionConstraint(); } if ($version->getMinor()->isAny()) { return new SpecificMajorVersionConstraint( $value, $version->getMajor()->getValue() ); } if ($version->getPatch()->isAny()) { return new SpecificMajorAndMinorVersionConstraint( $value, $version->getMajor()->getValue(), $version->getMinor()->getValue() ); } return new ExactVersionConstraint($value); } /** * @param $value * * @return OrVersionConstraintGroup */ private function handleOrGroup($value) { $constraints = []; foreach (explode('||', $value) as $groupSegment) { $constraints[] = $this->parse(trim($groupSegment)); } return new OrVersionConstraintGroup($value, $constraints); } /** * @param string $value * * @return AndVersionConstraintGroup */ private function handleTildeOperator($value) { $version = new Version(substr($value, 1)); $constraints = [ new GreaterThanOrEqualToVersionConstraint($value, $version) ]; if ($version->getPatch()->isAny()) { $constraints[] = new SpecificMajorVersionConstraint( $value, $version->getMajor()->getValue() ); } else { $constraints[] = new SpecificMajorAndMinorVersionConstraint( $value, $version->getMajor()->getValue(), $version->getMinor()->getValue() ); } return new AndVersionConstraintGroup($value, $constraints); } /** * @param string $value * * @return AndVersionConstraintGroup */ private function handleCaretOperator($value) { $version = new Version(substr($value, 1)); return new AndVersionConstraintGroup( $value, [ new GreaterThanOrEqualToVersionConstraint($value, $version), new SpecificMajorVersionConstraint($value, $version->getMajor()->getValue()) ] ); } }