저는 최근에 열거형을 광범위하게 사용하는 C#을 사용하는 회사에서 일해 왔으며, 찾을 수 있으면 찾을 수 있고 놓치는 데 익숙합니다. 찾지 마세요.
요일, 주문 상태 또는 아래 예와 같이 사용자 유형과 같이 가능한 옵션이 제한된 모든 것에 사용합니다.
열거를 사용하면 여러 가지 이점이 있습니다.
- 숫자를 바꾸거나 잘못 입력하여 발생하는 오류를 줄입니다.
- 나중에 값을 쉽게 변경할 수 있습니다.
- 코드를 읽기 쉽게 만들어 버그가 침투할 가능성이 줄어듭니다.
- 향후 호환성 보장 열거형을 사용하면 나중에 누군가가 멤버 이름에 해당하는 값을 변경할 경우 코드가 실패할 가능성을 크게 줄일 수 있습니다.
PHP 자체는 열거형을 지원하지 않지만 클래스에서 상수를 사용하면 동등한 효과를 얻는 것은 매우 쉽습니다. 또한 laravel-enum이라는 Laravel 패키지를 만들었습니다. 이를 통해 키 및 값 나열, 값에 설명 추가, 열거 값이 필요한 요청 유효성 검사와 같은 도우미 기능에 액세스할 수 있습니다.
이 가이드는 사용법 예시와 모범 사례를 포함하여 Laravel 패키지를 설치하는 과정을 단계별로 안내합니다.
패키지 설치
컴포저를 통해 터미널에서 다음 명령을 실행하여 패키지를 설치할 수 있습니다.
$ composer require bensampo/laravel-enum
Laravel 5.5 미만 버전을 사용하는 경우 config/app에 서비스 공급자를 추가해야 합니다. .php.
'BenSampo\Enum\EnumServiceProvider'
첫 번째 열거 만들기
사용자 유형에 대한 열거를 만듭니다. 샘플 애플리케이션에서 사용자는 관리자, 유료 회원, 회원의 세 가지 사용자 유형 중 하나에 속할 수 있습니다.
패키지는 열거형 생성을 위한 생성기를 포함하므로 다음 명령을 실행하여 UserType이라는 열거형을 생성할 수 있습니다. 파일은 "app/Enums/UserType.php"에 생성됩니다.
php artisan make:enum UserType
이 파일에서 열거형을 생성합니다. 어느 정도의 비계가 보였다. 파일 상단 근처에 가능한 옵션 목록이 상수로 정의되어 있습니다. 이러한 상수 값은 데이터베이스에 저장되므로 정수를 사용하는 것이 가장 좋다고 생각했지만, 각 값이 고유한 한 정수 사용에 제한은 없습니다.
이 예제의 옵션은 다음과 같습니다.
const Administrator = 0; const PaidMember = 1; const Member = 2;
데이터베이스에 값 저장
이제 몇 가지 가능성이 있는 열거형이 있으므로 이를 사용할 수 있습니다. 사용자 테이블을 마이그레이션할 때 다음을 추가할 수 있습니다.
$table->tinyInteger('type')->unsigned()->default(UserType::Member);
null은 열거형의 옵션이 아니므로 기본값을 설정해야 합니다. 이 예에서는 기본 사용자가 표준 회원이 된다고 가정해야 합니다.
파일 상단에 이 열거형에 대한 사용 설명을 포함했는지 확인하세요.
use App\Enums\UserType;
작업에 열거형 사용
이제 사용자 모델에 형식화된 속성이 있으므로 이에 액세스하여 열거형 값과 비교할 수 있습니다. 이것이 열거형의 진정한 이점이며 내가 열거형을 그토록 좋아하는 이유입니다. 아래에서 사용 예와 가능한 대안을 살펴보세요.
if ($user->type === UserType::PaidMember) { // 在这里只是做一些付费会员的事情. }
열거형을 사용하지 않으면 다음과 유사한 코드가 있을 수 있습니다.
if ($user->type === 1) { // 이 1은 무엇을 의미하나요? // ... } if ($user->type === 'PaidMember') { // 대체 이게 왜 또 문자열인가요?
위 내용은 Laravel에서 열거형 사용하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!