Имеет ли смысл делать проверку цепочкой обязанностей. Например проверка статуса статьи.
Проверка возможности получения статьей нового статуса.
Вместо:
Код: Выделить всё
if ($new_staus = Delete && $old_status = 'published' ) {
throw new Error('published alredy');
}
if($new_status < $old_status) {
throw new Error('reverse ');
}
Код: Выделить всё
$isPublished = new IsPublished();
$isReversed = new isReversed(isPublished);
$check = new $checStatus($new_status, $old_status);