Source of file EnumToStringLowerTrait.php
Size: 1,675 Bytes - Last Modified: 2019-08-09T18:27:54+00:00
/home/travis/build/zerospam/sdk-framework/src/Utils/Contracts/Enums/EnumToStringLowerTrait.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php /** * Created by PhpStorm. * User: pbb * Date: 14/08/18 * Time: 9:08 AM */ namespace ZEROSPAM\Framework\SDK\Utils\Contracts\Enums; use ZEROSPAM\Framework\SDK\Utils\Str; /** * Trait EnumToStringLowerTrait * * Common code for Enum Insensitive implementations * * @package ZEROSPAM\Framework\SDK\Utils\Contracts\Enums */ trait EnumToStringLowerTrait { /** * @return string */ function __toString(): string { return Str::lower(parent::__toString()); } /** * Retrieve enumeration instance by name, case insensitive * * @param string $name * * @return self */ public static function byNameInsensitive(string $name) { return self::byName(Str::upper($name)); } /** * Retrieve enumeration instance by its value, case insensitive * * @param $value * * @return self */ public static function byValueInsensitive(string $value) { return self::byValue(Str::lower($value)); } /** * String representing the different values of enumeration * * @param string $sep * * @return string */ public static function getDisplayableValues($sep = ', '): string { return implode($sep, self::getEnumerators()); } /** * Return an array of enum matching all the given names * * @param string[] $names * * @return self[] */ public static function getEnumsByNameInsensitive(array $names): array { return array_map( function (string $name) { return self::byNameInsensitive($name); }, $names); } } |