пора бы уже использовать короткий синтаксис для массивов.
Если бы они поддерживались в 5.3 ...
По поводу замечаний по исключениям: а если стоит задача показывать в режиме дебага текст исключения на родном программисту языке?
Я понимаю, все должны знать английский и все такое, но тем не менее существует группа
разработчиков быдлокодеров, которые не знают ангельского.
Вы скажите что это не люди и на них ориентироваться не надо?
Возможно, но у меня другое мнение и другая задача.
Пользователям исключения показаны не будут ни русские ни английские, вместо этого будет стандартная плашка "Произошла ошибка бла-бла" и то, только в случае, если исключение не будет обработано.
Собственно изначально их там и не было, они появились позже при внедрения класса Lang и опять же для получения сообщения об ошибке на выбранном языке, а не стандартного PHP-ного
По поводу
PHP:
if (!$this->isBindExists($alias)) {
$this->addBind($alias, $entity, $arguments);
}
Здесь исключение не нужно, здесь проверяется существует ли уже связка, и если нет - то она создается
Если же связка существует - не происходит ничего. Можно было бы выбрасывать исключение типа bind_already_exists, но я посчитал что это лишнее
Что касается
PHP:
protected function instantiate($alias, $arguments = array())
{
if (Lib::chkArr($arguments)) {
return call_user_func_array($this->binds[$alias]['entity'], $arguments);
} else {
return call_user_func_array($this->binds[$alias]['entity'], $this->binds[$alias]['arguments']);
}
}
Здесь происходит проверка на то, был ли передан массив аргументов для передачи конструктору или нет. Lib::chkArr($arguments) == if (is_array($arguments) && count($arguments) > 0)
Если массив параметров был передан - вызывается замыкание с переданными параметрами, если же нет - параметры берутся из привязки.
Зачем здесь исключение?
Не смотрел и не играл =)