Я только начал играть с Symfony 2.0 и сразу столкнулся с ошибкой:
[28-Nov-2011 16:51:26] Неустранимая ошибка PHP: необработанное исключение InvalidArgumentException с сообщением'Ожидается вызов в AnnotationRegistry :: registerLoader ().'
Копая глубже, я обнаружил, что анонимная функция передавалась в функцию registerLoader
.
$callable = function($class) use ($loader)
{
$loader->loadClass($class);
return class_exists($class, false);
};
AnnotationRegistry::registerLoader($callable);
Выглядит хорошо, верно?Просто чтобы быть в безопасности, я бросил чек:
var_dump(gettype($callable));
, который возвратил NULL, который явно не вызывается.Я только что обновился до PHP 5.3.2, и, согласно phpversion()
, эта версия уже используется.
Я запустил одноразовый скрипт за пределами среды Symfony, и все работало правильно.
$foo = function()
{
echo 'foo';
};
var_dump(gettype($foo));
// string (6) "object"
У кого-нибудь есть мысли о том, почему я наблюдаю различное поведение анонимных функций в среде Symfony?