扩展控制器时出现 Slim RuntimeException class

Slim RuntimeException when extending a controller class

错误是:

Fatal error: Uncaught exception 'RuntimeException' with message 'Unexpected data in output buffer. Maybe you have characters before an opening

我构建了一个非常简单的控制器 class 来处理我正在处理的 MVC 的路由和渲染。我在容器中注册了所有控制器,并设置了调用它们的路由,就像正在工作的 'className:methodName' 一样。虽然每个控制器都需要一个构造函数来设置容器,以便我可以呈现 php 视图。这似乎是干涸的好事所以我做了一个摘要class

abstract class Controller {
    public $container;

    function __constructor($container = null){
         $this->container = $container;
    }
}

从字面上看,什么都没改变,只是一层抽象,但这是发生上述错误的时候。

我可以通过添加以下设置来解决这个问题:

addContentLengthHeader = false

这很好,因为我仍然可以工作,但我不确定 A) 为什么设置内容长度是为了增加安全性还是什么?和 B) 为什么这种抽象会导致这种情况发生,我应该做一些不同的事情吗?

如果在 class 声明前后有空格或其他字符,则会出现此错误。请检查您的源文件在开始 PHP 标记之前是否有空格