【问题标题】:dependencies usage in Slim 3Slim 3 中的依赖项使用
【发布时间】: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

【问题讨论】:

  • 这可能有帮助吗? stackoverflow.com/questions/40176059/…
  • 为一级班级工作,但对于二级班级,我无法使用容器调用三级班级
  • 好的,我不确定还有什么建议,但我觉得问题与我在上面的链接中发布的内容相同。我只将 Slim 用于 1 个项目,然后正是因为这个问题而停止使用它。不得不手动依赖注入东西真的很乏味。该帖子上接受的答案涉及使用不同的依赖注入器,这确实使事情变得更好,但它仍然落后于像 CakePHP 的做事方式之类的光年。抱歉,我无法提供更多帮助。回复我帖子的人对 Slim 非常了解,如果可以的话,可以联系他们吗?
  • 您正在注入整个应用程序,包括。容器。最好通过构造函数注入传递特定对象所需的依赖项。

标签: php slim slim-3


【解决方案1】:

发现错误 应该注入容器而不是 $app

$container['model'] = function($c) use ($app) {
    return new model( $c );
};

【讨论】:

    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2018-04-13
    • 1970-01-01
    • 2015-11-05
    • 2012-03-17
    相关资源
    最近更新 更多