Как проще всего обрабатывать ошибки проверки с помощью PHP?

Я искал лучшие способы обработки проверки на протяжении всего времени разработки веб-приложений. Часто необходимо отлавливать несколько ошибок проверки, поэтому я хотел знать, есть ли лучший способ сделать это, чем следующий.

Прямо сейчас у меня есть метод assertв структуре, которую я разработал сам. Вот пример метода:

assert(($foo == 1), 'Foo не равно 1');

Если условие в первом аргументе ложно, сообщение об ошибке во втором аргументе добавляется в массив $errors(который заключен в класс (на который ссылается $ehниже), который предоставляет удобные функции, такие как hasErrors()).

Этот метод работает, но на практике запутан. Рассмотрим этот код:

public function submit($foo, $bar, $baz)
{
    assert(($foo == 1), 'Foo is not equal to 1');
    assert(($bar == 2), 'Bar is not equal to 2');

    if (!$eh->hasErrors())
    {
        assert(($baz == 3), 'Baz is not equal to 3');

        if (!$eh->hasErrors())
        {
            finallyDoSomething();
            return;
        }
    }

    outputErrors();
}

Это довольно распространенное явление.Я хочу проверить два условия, прежде чем двигаться дальше, а затем, если они выполняются, проверить третье условие, прежде чем, наконец, сделать то, что я хочу сделать. Как видите, большинство строк в этом коде связаны с проверкой. В реальном приложении будет больше проверок и, возможно, больше вложенных операторов if.

Есть ли у кого-нибудь лучшая структура для обработки проверки, чем эта? Если есть фреймворки, которые справляются с этим более элегантно, то какие они и как они это делают? Множественные вложенные операторы if кажутся таким «грубым» решением проблемы.

Просто примечание: я понимаю, что было бы неплохо обернуть некоторые общие функции проверки в класс, чтобы я мог проверять длину, формат строки и т. д., вызывая эти функции. Я прошу более чистый подход к структуре кода, а не то, как я на самом деле проверяю ошибки.

Спасибо!

8
задан Logan Serman 19 May 2012 в 02:53
поделиться