Необходимо ли проверять данные, входящие в класс результатов? - PullRequest
0 голосов
/ 26 апреля 2011

В моей библиотеке есть класс, который выполняет некоторую обработку, и возвращением этого метода process() является класс Result.

Например,

class Result {
    protected $data1;
    protected $data2;
    public function __construct($data1, $data2) {
        $this->data1 = $data1;
        $this->data2 = $data2;
    }
    // Some getters that use $data1 and $data2
}

ThisКласс Result имеет несколько методов получения, которые обрабатывают $data1 и $data2 для своих возвращений.

Теперь, чтобы эти методы получения работали, $data1 и $data2 должны иметь определенный форматНапример, строка, многомерный массив и т. д.

Мой класс обработки всегда будет правильно создавать экземпляр Result, но все равно должен ли я проверять данные, поступающие в Result в любом случае ?

Если введены неверные данные и запущен определенный метод, произойдет ошибка PHP, что, очевидно, является ошибкой.Но это произойдет только в том случае, если кто-то физически создаст экземпляр класса Result с ошибочными данными.

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

Мысли?

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Доверяете ли вы источнику данных?Если это так, то не беспокойтесь о проверке.

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

0 голосов
/ 26 апреля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...