What principle are we violating if we use a method to update an input object's fields?
An example:
class Data {
public int $someField = 0; // it's private with setSomeField method
public int $anotherField = 0;
}
class SomeUseCase
{
// ... some DI
public function updateData(Data $data): void
{
// ... some business logic
$data->someField += 5;
// ... anotherField wouldn't update here
}
}
$data = new Data();
$data->anotherField = 42;
$someUseCase = new SameUseCase();
$someUseCase->updateData($data);
I think, it's too hard to debug