• Czas czytania ~3 min
  • 22.08.2023

EnumConcern to nowo wprowadzony pakiet PHP dostosowany do usprawnienia korzystania z funkcji Enum PHP poprzez zapewnienie kompleksowego zestawu metod. Wspierany przez Laravel Collections, EnumConcern ma na celu zaoferowanie płynnego i znanego doświadczenia.

Kluczowe cechy EnumConcern:

  • Wszechstronność: EnumConcern zawiera wiele metod, które umożliwiają łatwą obsługę wyliczeń, takich jak all, , hascaseExistsi inne.
  • Możliwości konwersji: Pakiet oferuje metody konwersji wyliczeń na różne formaty, takie jak JSON, tablica lub kolekcje klucz-wartość.
  • Dostosowywania: Istnieje elastyczność w uzyskiwaniu podzbiorów wartości za pomocą metod only, , , , onlyAsArrayexceptexceptAsArrayitp.
  • Funkcje użytkowe: Funkcje takie jak randomValue, , firstrandomCasei last zapewniają dodatkowe narzędzie.

EnumConcern Użycie:

EnumConcern płynnie integruje się z istniejącymi wyliczeniami, umożliwiając funkcje takie jak tłumaczenie i różne kontrole. Oto przykład tłumaczenia wyliczeń kolorów na język turecki:

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

Za pomocą funkcji takich jak Color::all('translateToTurkish'), możesz bez wysiłku pobierać przetłumaczone wartości.

Metody EnumConcern

  • all: Pobierz wszystkie wartości jako kolekcję. Parametry: method = '' (opcjonalnie). Typ zwrotu: Collection.
  • allAsArray: Pobierz wszystkie wartości jako tablicę. Parametry: method = '' (opcjonalnie). Typ zwrotu: array.
  • has: Sprawdź, czy istnieje określona wartość. Parametry: value, method = '' (opcjonalnie). Typ zwrotu: bool.
  • caseExists: Sprawdź, czy istnieje konkretny przypadek (klucz / nazwa). Parametry: value, method = '' (opcjonalnie). Typ zwrotu: bool.
  • allCasesExists: Sprawdź, czy wszystkie podane przypadki (klucze/nazwy) istnieją. Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: bool.
  • anyCaseExists: Sprawdź, czy istnieją jakieś podane przypadki (klucze/nazwy). Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: bool.
  • caseByValue: Pobierz wielkość liter (klucz/nazwę) dla określonej wartości. Parametry: value, method = '' (opcjonalnie). Typ zwrotu: string.
  • toJson: Konwertuj wszystkie wartości na ciąg JSON. Parametry: method = '' (opcjonalnie), jsonEncodeOption (opcjonalnie). Typ zwrotu: string.
  • toArray: Konwertuj wszystkie wartości na tablicę. Parametry: method = '' (opcjonalnie). Typ zwrotu: array.
  • toKeyValueCollection: Konwertuj wszystkie wartości na format klucz-wartość jako kolekcję. Parametry: method = '' (opcjonalnie). Typ zwrotu: Collection.
  • toKeyValueArray: Konwertuj wszystkie wartości na format klucz-wartość jako tablicę. Parametry: method = '' (opcjonalnie). Typ zwrotu: array.
  • randomValue: Pobierz losową wartość ze zbioru wartości. Parametry: method = '' (opcjonalnie). Typ zwrotu: mixed.
  • randomCase: Pobierz losowy przypadek (klucz/nazwę) ze zbioru wartości. Parametry: Brak. Typ zwrotu: string.
  • casesCollection: Pobierz wszystkie skrzynki (klucze/nazwy) Enum jako kolekcję. Parametry: Brak. Typ zwrotu: Collection.
  • casesArray: Pobierz wszystkie przypadki (klucze/nazwy) wyliczenia jako tablicę. Parametry: Brak. Typ zwrotu: array.
  • allToArray: Pobierz wszystkie wartości jako tablicę (alias dla toArray metody). Parametry: method = '' (opcjonalnie). Typ zwrotu: array.
  • only: Pobierz podzbiór wartości jako kolekcję, zawierający tylko określone przypadki (klucze/nazwy). Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: Collection.
  • onlyAsArray: Pobierz podzbiór wartości jako tablicę, zawierający tylko określone przypadki (klucze/nazwy). Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: array.
  • except: Pobierz podzbiór wartości jako kolekcję, z wyłączeniem określonych przypadków (kluczy/nazw). Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: Collection.
  • exceptAsArray: Pobierz podzbiór wartości jako tablicę, z wyłączeniem określonych przypadków (kluczy/nazw). Parametry: cases, method = '' (opcjonalnie). Typ zwrotu: array.
  • first: Pobierz pierwszą wartość w wyliczeniu. Parametry: method = '' (opcjonalnie). Typ zwrotu: mixed.
  • last: Pobierz ostatnią wartość w wyliczeniu. Parametry: method = '' (opcjonalnie). Typ zwrotu: mixed.

Wniosek:

EnumConcern oferuje solidne rozwiązanie do zarządzania Enums w PHP, bezproblemową integrację z Laravel Collections i zapewnienie wielu przydatnych metod. Niezależnie od tego, czy chcesz sprawdzić, przekonwertować lub manipulować wyliczeniami, EnumConcern upraszcza proces, oszczędzając czas i wysiłek.

Aby uzyskać bardziej szczegółowe przykłady i obszerną dokumentację, można zapoznać się z oficjalną dokumentacją EnumConcern.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297