2016-04-05 1 views
0

У меня есть следующий фрагмент кода:Что не так с этим закрытием?

$di = new FactoryDefault(); 
... 
$di->setShared('mongo', function($di) use ($di) { 
    return new Models\MongoDb\Manager($di); 
}); 

код работает отлично, но журнал PHP говорит:

Warning: Missing argument 1 for {closure}() in 
/var/www/merkaz.gq/public_html/v1/index.php on line 63 

Любые идеи?

ответ

2

Потому что ваша clousure не вызывается с аргументом $di. Изменение

function($di) use ($di) { 

в

function() use ($di) { 
+1

спасибо! я исправил код и теперь отлично работает. - – ramiromd

+0

Это только я, или сообщение об ошибке вводит в заблуждение? – Mike

+0

не очень; потому что закрытие ожидает аргумент, а затем вызывается без него, я думаю, что ошибка «Отсутствующий аргумент» подходит - php думает: «Возможно, это вина того, кто назвал закрытие» – Federkun

1

В Phalcon 2.1 вы можете использовать:

$di->setShared('mongo', function() { 
    return new Models\MongoDb\Manager($this); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^