У меня есть родительский класс с некоторыми свойствами по умолчанию. В дочернем классе я хочу обновить эти свойства напрямую, без использования метода. Зачем? Я считаю, что это чистый способ определения функциональности в дочернем классе.
Итак, вот мой родительский класс:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BaseFormRequest extends FormRequest
{
protected static $NEEDS_AUTHORIZATION = false;
protected static $FORM_RULES = [];
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() : bool
{
//dd($this->authorize);
return self::$NEEDS_AUTHORIZATION;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules() : array
{
return self::$FORM_RULES;
}
}
В моем детском классе я хотел бы сделать что-то похожее на следующее:
<?php
namespace App\Http\Requests;
use App\Http\Requests\BaseFormRequest;
class RegisterUserRequest extends BaseFormRequest
{
protected static $NEEDS_AUTHORIZATION = true;
protected static $FORM_RULES = [ /* specific form rules for this form */];
}
Я не знаю, будет ли это правильным способом сделать это. У меня вопрос, могу ли я сделать что-то подобное? Если у меня есть 5 классов запросов форм, расширяющих BaseFormRequest , мне просто нужно переопределить NEEDS_AUTHORIZATION и FORM_RULES , что выглядит намного чище, чем создание тех же методов (authorize()
и rules()
) снова и снова в каждом классе.