【发布时间】:2023-02-24 18:21:45
【问题描述】:
我一直在使用 laravel 学习 php 8.1 上的新枚举介绍,用于 eccomerce cms。我对SOLID 原则是全新的。
这是我的枚举类:
enum PaymentMethods : string
{
case PAYPAL = 'pay with paypal';
case STRIPE = 'pay with stripe';
}
在结帐页面上,用户可以选择一种付款方式,如下所示:
<select name="delivery_method">
@foreach(DeliveryMethods::cases() as $case)
<option value="{{ $case->name }}">{{ $case->value }}</option>
@endforeach
</select>
假设我们在视图中有 PAYPAL 值(取自用户输入),我们想从 PaymentMethods 枚举类访问 PAYPAL 的值,
一种方法是我使用这样的 foreach 循环:
<p>
@foreach(DeliveryMethods::cases() as $case)
@if(request()->get('payment_method') == $case->name)
{{ $case->value }}
@endif
@endforeach
</p>
但我想在不同的地方多次使用这个逻辑, 基于可靠的原则,有没有更好的方法来代替这样做?
【问题讨论】:
标签: php laravel enums solid-principles php-8.1