Я пишу пакет Laravel, но у меня проблема. Пакет отправляет задание, которое выполняет что-то вроде этого:
class ExampleJob
{
protected $exampleProperty;
function __construct($parameter)
{
$this->exampleProperty = $parameter;
}
}
Мне нужно проверить, отправляется ли это задание с правильным параметром $ (это значение извлекается из базы данных и, в зависимости от ситуации, это будет другое значение).
Согласно документам, Laravel позволяет сделать это:
Bus::assertDispatched(ShipOrder::class, function ($job) use ($order) {
return $job->order->id === $order->id;
});
Но это означает, что свойство $ order должно быть публичным (в моем случае у меня есть: protected $ exampleProperty;).
Это хорошая практика? Я имею в виду объявление свойства класса как публичного? А как насчет концепции инкапсуляции в ООП?
Есть идеи, пожалуйста?