沃梦达 / 编程问答 / php问题 / 正文

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

PHP Slim 3 Framework - Use MonoLog in Custom Class - Using $this when not in object context(PHP Slim 3框架-在自定义类中使用单体-当不在对象上下文中时使用$This)

本文介绍了PHP Slim 3框架-在自定义类中使用单体-当不在对象上下文中时使用$This的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从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;
    }

}

这篇关于PHP Slim 3框架-在自定义类中使用单体-当不在对象上下文中时使用$This的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

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

基础教程推荐