PHP Slim 3框架-在自定义类中使用单体-当不在对象上下文中时使用$This

2022-06-13 00:00:00 php slim slim-3

我正在从Slim 3框架开始工作,并尝试在我创建的名为Utilities的自定义类中使用独白。

Utilties.php-index.php中需要

<?php

class Utilities {

    protected $logger;

    function __construct($c) {
        $this->logger = $logger;
    }

    static function checkPerms() {
        $this->logger->info("checkPerms() permissions of user id valid.");
        return true;
    }

}

Dependencies.php-i添加了以下内容:

$container['utilities'] = function ($c) {
    return new Utilities($c->get('logger'));   
};

但我收到错误:

消息:不在对象上下文中时使用$This

文件:/Applications/MAMP/htdocs/project/src/utilities.php

我一定遗漏了什么,但我不确定是什么?


解决方案

我会稍微重构Uilties.php:

<?php

class Utilities
{

    protected $logger;

    function __construct($logger)
    {
        $this->logger = $logger;
    }

    public function checkPerms()
    {
        $this->logger->info("checkPerms() permissions of user id valid.");

        return true;
    }

}

相关文章