이 글은 Laravel 10의 새로운 구성요소인 Laravel Pennant를 주로 소개합니다. 관심 있는 친구들은 아래를 살펴보는 것이 도움이 될 것입니다.
Laravel Pennant는 애플리케이션에 기능 플래그를 제공하기 위해 Laravel 10과 함께 제공되는 Laravel 팀에서 만든 패키지입니다.
기능 플래그를 사용하면 새로운 앱 기능을 점진적으로 출시하고, 새로운 인터페이스 디자인을 A/B 테스트하고, 트렁크 기반 개발 전략을 보완하는 등의 작업을 수행할 수 있습니다.
이 패키지 는 공식적으로 사용 가능한 패키지 시리즈 중 최신 패키지입니다. 즉, 이제 훌륭한 기능을 제공하는 잘 구축되고 잘 테스트된 패키지를 갖게 되었습니다.
패키지의 기능을 분석하면 이 패키지가 우리에게 제공하는 것이 무엇인지 이해할 수 있습니다.
AppServiceProvider
를 사용하여 새로운 기능을 만들 수 있습니다.
public function boot(): void { Feature::define('beta-testers', fn (User $user) => match (true) { $user->isBetaTester() => true, default => false, }); }
이것은 앱의 기능을 정의하는 매우 깔끔하고 간단한 방법입니다. 그러나 기능을 구현하기 위해 클래스 기반 접근 방식을 사용할 수도 있습니다.
class BetaTesters { public function resolve(User $user): mixed { return match (true) { $user->isBetaTester() => true, default => false, }; } }
문서를 살펴보니 이를 사용하는 방법이 여러 가지 있다는 것을 알았습니다. 문서의 예를 살펴보고 이를 사용하여 무엇을 할 수 있는지 살펴보겠습니다.
class PodcastController { public function index(Request $request): Response { return Feature::when(NewApi::class, fn () => $this->resolveNewApiResponse($request), fn () => $this->resolveLegacyApiResponse($request), ); } }
계속해서, 이것은 버전이 있는 API입니다. 사용자에게 액세스 권한이 있는지 여부에 따라 요청이 어디로 가는지 제어할 수 있습니다. 이 예를 확장해 보겠습니다.
class PodcastController { public function __construct( private readonly RedirectAction $action, ) {} public function index(Request $request): Response { return Feature::when(BetaTester::class, fn () => $this->action->handle('v2'), fn () => $this->action->handle('v1'), ); } }
우리는 사용자가 베타 테스터인지 아닌지에 따라 올바른 API 경로로 리디렉션하는 작업을 사용할 수 있습니다. 더 간단하게 만들기 위해 더 높은 미들웨어 계층으로 이동할 수 있습니다.
class VersionMiddleware { public function handle(Request $request, Closure $next): mixed { if (Feature::active('beta-tester')) { return new RedirectResponse( uri: 'generate the url here', ); } return $next($request); } }
상상할 수 있듯이 이 패키지로 할 수 있는 일은 상상력에 따라 제한됩니다. 이 패키지를 사용하여 내 애플리케이션에 어떤 개선 사항을 추가할 수 있는지 보고 싶습니다.
원본 주소:https://www.php.cn/link/c988c2dac3954436ac56147118fb5c73
번역 주소:https://www.php.cn/link/21d58309d158bcb0e3e70a3827221e 7c
위 내용은 Laravel10 새 구성요소에 대한 자세한 설명: Laravel Pennant의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!