Source of file IEnumInsensitive.php

Size: 1,104 Bytes - Last Modified: 2019-08-09T18:27:54+00:00

/home/travis/build/zerospam/sdk-framework/src/Utils/Contracts/Enums/IEnumInsensitive.php

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
<?php
/**
 * Created by PhpStorm.
 * User: pbb
 * Date: 14/08/18
 * Time: 9:09 AM
 */

namespace ZEROSPAM\Framework\SDK\Utils\Contracts\Enums;

/**
 * Interface IEnumInsensitive
 *
 * @package ZEROSPAM\Framework\SDK\Utils\Contracts\Enums
 */
interface IEnumInsensitive
{
    /**
     * Retrieve enumeration instance by its value, case insensitive
     *
     * @param $value
     *
     * @return self
     */
    public static function byValueInsensitive(string $value);

    /**
     * Retrieve enumeration instance by name, case insensitive
     *
     * @param string $name
     *
     * @return self
     */
    public static function byNameInsensitive(string $name);

    /**
     * String representing the different values of enumeration
     *
     * @param string $sep
     *
     * @return string
     */
    public static function getDisplayableValues($sep = ', '): string;

    /**
     * Return an array of enum matching all the given names
     *
     * @param string[] $names
     *
     * @return self[]
     */
    public static function getEnumsByNameInsensitive(array $names): array;
}