扩展控制器时出现 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 标记之前是否有空格
错误是:
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 标记之前是否有空格