| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | <?php// @codingStandardsIgnoreStart// phpcs:disable PSR1.Classes.ClassDeclaration.MultipleClassesnamespace Qiniu\Enum;use MyCLabs\Enum\Enum;if (method_exists("MyCLabs\\Enum\\Enum", "from")) {    abstract class QiniuEnum extends Enum    {        // @codingStandardsIgnoreEnd        // @codingStandardsIgnoreStart    }} else {    /**     * poly fill MyCLabs\Enum\Enum::from in low version     *     * @link https://github.com/myclabs/php-enum     */    abstract class QiniuEnum extends Enum    {        // @codingStandardsIgnoreEnd        /**         * @param mixed $value         * @return static         */        public static function from($value)        {            $key = self::assertValidValueReturningKey($value);            return self::__callStatic($key, array());        }        /**         * Asserts valid enum value         *         * @psalm-pure         * @psalm-assert T $value         * @param mixed $value         * @return string         */        private static function assertValidValueReturningKey($value)        {            if (false === ($key = self::search($value))) {                throw new \UnexpectedValueException("Value '$value' is not part of the enum " . __CLASS__);            }            return $key;        }        // @codingStandardsIgnoreStart    }}
 |