这个关闭有什么问题?

What is wrong with this closure?

我有下一个代码片段:

$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

有什么想法吗?

因为你的clousure没有用$di参数调用。更改

function($di) use ($di) {

function() use ($di) {

在 Phalcon 2.1 中你可以使用:

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