【发布时间】:2018-01-16 15:14:57
【问题描述】:
您好,我有以下依赖项:
$container['controller'] = function($c) use ($app) {
return new controller( $app );
};
$container['utils'] = function($c) use ($app) {
return new utils( $app );
};
$container['model'] = function($c) use ($app) {
return new model( $app );
};
我从控制器类调用 MODEL 类,例如:
$this->continer->model->function() .
这是完美的,但现在我不能从模型中调用“utils”类或其他类
$this->continer->utils->function() .
得到了:
注意:未定义的属性:Slim\App::$model
【问题讨论】:
-
为一级班级工作,但对于二级班级,我无法使用容器调用三级班级
-
好的,我不确定还有什么建议,但我觉得问题与我在上面的链接中发布的内容相同。我只将 Slim 用于 1 个项目,然后正是因为这个问题而停止使用它。不得不手动依赖注入东西真的很乏味。该帖子上接受的答案涉及使用不同的依赖注入器,这确实使事情变得更好,但它仍然落后于像 CakePHP 的做事方式之类的光年。抱歉,我无法提供更多帮助。回复我帖子的人对 Slim 非常了解,如果可以的话,可以联系他们吗?
-
您正在注入整个应用程序,包括。容器。最好通过构造函数注入传递特定对象所需的依赖项。