• Время чтения ~1 мин
  • 22.08.2023

EnumConcern - это недавно представленный пакет PHP, предназначенный для оптимизации использования функции PHP Enum, предоставляя полный набор методов. При поддержке Laravel Collections, EnumConcern стремится предложить бесшовный и знакомый опыт.

Ключевые особенности EnumConcern:

  • Многосторонность: EnumConcern включает в себя множество методов, которые упрощают работу с перечислениями, такие как all, , caseExists, hasи другие.
  • Возможности преобразования: Пакет предлагает методы преобразования перечислений в различные форматы, такие как JSON, массив или коллекции ключей-значений.
  • Настройка: Существует гибкость в получении подмножеств значений с помощью методов only, , , , onlyAsArrayexceptexceptAsArrayи т. д.
  • Служебные функции: Такие функции, как randomValue, , randomCasefirstи last обеспечивают дополнительную полезность.

Использование EnumConcern:

EnumConcern плавно интегрируется в существующие перечисления, обеспечивая такие функции, как перевод и различные проверки. Вот пример того, как перевести цветовые перечисления на турецкий язык:

namespace App\Enums;

use EmreYarligan\EnumConcern\EnumConcern;

enum Color: string
{
    use EnumConcern;

    case RED = "Red";
    case GREEN = "Green";
    case BLUE = "Blue";

    public function translateToTurkish(): string
    {
        return match ($this) {
            self::RED    => 'Kırmızı',
            self::GREEN  => 'Yeşil',
            self::BLUE   => 'Mavi',
        };
    }
}
Color::all();
// Result: Illuminate\Support\Collection (7) [
//   [0] => 'Red',
//   [1] => 'Green',
//   [2] => 'Blue
// ]
Color::all('translateToTurkish');
// Result: Illuminate\Support\Collection (7) [
//   [0] => 'Kırmızı',
//   [1] => 'Yeşil',
//   [2] => 'Mavi
// ]
Color::has('Purple');
// false
Color::has('Mavi','translateToTurkish');
// true

С помощью таких функций, как Color::all('translateToTurkish'), вы можете легко получить переведенные значения.

EnumConcern - методы

  • all: Получить все значения в виде коллекции. Параметры: method = '' (опционально). Тип возвращаемого значения: Collection.
  • allAsArray: Получить все значения в виде массива. Параметры: method = '' (опционально). Тип возвращаемого значения: array.
  • has: Проверьте, существует ли определенное значение. Параметры: value, method = '' (необязательно). Тип возвращаемого значения: bool.
  • caseExists: Проверьте, существует ли конкретный случай (ключ / имя). Параметры: value, method = '' (необязательно). Тип возвращаемого значения: bool.
  • allCasesExists: Проверьте, существуют ли все заданные случаи (ключи/имена). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: bool.
  • anyCaseExists: Проверьте, существуют ли какие-либо из заданных случаев (ключей/имен). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: bool.
  • caseByValue: Получить регистр (ключ/имя) для определенного значения. Параметры: value, method = '' (необязательно). Тип возвращаемого значения: string.
  • toJson: преобразуйте все значения в строку JSON. Параметры: (опционально), method = '' jsonEncodeOption (опционально). Тип возвращаемого значения: string.
  • toArray: преобразуйте все значения в массив. Параметры: method = '' (опционально). Тип возвращаемого значения: array.
  • toKeyValueCollectionПреобразуйте все значения в формат "ключ-значение" в виде коллекции. Параметры: method = '' (опционально). Тип возвращаемого значения: Collection.
  • toKeyValueArray: преобразуйте все значения в формат "ключ-значение" в виде массива. Параметры: method = '' (опционально). Тип возвращаемого значения: array.
  • randomValue: Получить случайное значение из коллекции значений. Параметры: method = '' (опционально). Тип возвращаемого значения: mixed.
  • randomCase: Получить случайный случай (ключ/имя) из коллекции значений. Параметры: Нет. Тип возвращаемого значения: string.
  • casesCollection: Получить все случаи (ключи/имена) перечисления в виде коллекции. Параметры: Нет. Тип возвращаемого значения: Collection.
  • casesArray: Получить все случаи (ключи/имена) перечисления в виде массива. Параметры: Нет. Тип возвращаемого значения: array.
  • allToArray: Получить все значения в виде массива (псевдоним метода toArray ). Параметры: method = '' (опционально). Тип возвращаемого значения: array.
  • only: Получить подмножество значений в виде коллекции, включая только указанные случаи (ключи/имена). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: Collection.
  • onlyAsArray: Получить подмножество значений в виде массива, включая только указанные случаи (ключи/имена). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: array.
  • except: Получить подмножество значений в виде коллекции, исключая указанные случаи (ключи/имена). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: Collection.
  • exceptAsArray: Получить подмножество значений в виде массива, исключая указанные случаи (ключи/имена). Параметры: cases, method = '' (необязательно). Тип возвращаемого значения: array.
  • first: Получение первого значения в перечислении. Параметры: method = '' (опционально). Тип возвращаемого значения: mixed.
  • last: Получить последнее значение в перечислении. Параметры: method = '' (опционально). Тип возвращаемого значения: mixed.

Вывод:

EnumConcern предлагает надежное решение для управления перечислениями в PHP, легко интегрируется с коллекциями Laravel и предоставляет множество полезных методов. Независимо от того, нужно ли вам проверять, преобразовывать или манипулировать перечислениями, EnumConcern упрощает процесс, экономя время и усилия.

Для получения более подробных примеров и исчерпывающей документации вы можете обратиться к официальной документации EnumConcern.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297