Я знаю, что название кажется загадочным, и, возможно, это так. Это почти дилемма. Я разрабатываю рамки для учебных целей (и, возможно, профессиональных), и тогда я намерен совместно разработать документацию, объясняющую все свойства и методы в проекте.Динамическая типизация и API "breaker"
В документации должно быть объяснено, что метод sum()
должен принимать два целых аргумента. Например:
/**
* Sum two numbers.
* @param int $a
* @param int $b
* @return int
*/
function sum($a, $b) {
return $a + $b;
}
Но вопрос, если случайно пользователь John Doe решили послать неправильный вид информации (независимо почему, может быть, потому что они не читают документацию), как я должен обрабатывающий ошибка? Должен ли я позволить PHP получить работу (которая в некоторых случаях может запускать код с совершенством, по совпадению), или выполнить ручную проверку и выбросить мою собственную ошибку, чтобы совпадение не могло произойти? Например:
function sum($a, $b) {
throwErrorIfNotMatchType($a, "int");
throwErrorIfNotMatchType($b, "string");
return $a + $b;
}
Короче говоря, ответственность за контроль ошибок и совпадениями должны управляться исключительно за счет API, или полную ответственность за пользователя (который должен прочитать существующую документацию), или должны контролироваться частично? В случае последнего ответа на какие случаи?
Или, может быть, использовать константу 'DEBUG' для запуска * тип проверки *. –
Проверка постоянных затрат DEBUG Время CPU - цель - быть как можно быстрее на быстром пути. По мере созревания приложения вы часто сможете уйти в отставку API-интерфейсов типов и работать с нестандартными в производстве. –