такие проблемы решаются каждая по своему. Найти общее решение для всего не всегда будет оптимально.
В данном случае можно определить бинарную фунцию functor: (0,1)x(0,1) -> (f1,f2,f3,f4)
функции и будут Ваши some conditions.
Типа такого (сорри синтакиси сишный, так как не знаю php),
int to0123(bool a, bool b)
{
return ((int)(a == true) << 1) + (int)(b == true);
}
Если,
conditions = {f1, f2, f3, f4};
, где fx функции, которые проверяют ваши some conditions,
то можно писать типа такого
idx = to0123($this->isNewRecord, empty($this->parent_id));
if (conditions[idx])
success = true