为什么 Yii 将“<?php”渲染到每个后端控制器输出中?

Why does Yii render "<?php" into every backend controller output?

可重现的问题

在 2.0.3 "advanced"(Yii 提供项目的基本和高级设置)在后端创建一个空控制器,例如

public function actionTest()
{
}

并在浏览器中调用它。您会看到一个空白页面。查看源代码时,您会看到一个孤独的 php 标记。

<?php

这对我来说像是一个错误,因为它不会发生在前端文件夹中,只会发生在后端文件夹中。这在渲染 CSV 文件时非常重要,它会破坏文件。

我不确定这是我这边的错误还是框架内部的真正错误。

这是 Yii 2.0.3 中的错误!

... 由裸 PHP 文件中较低级别且不太明显的空白问题引起。

门票及更多信息:

https://github.com/githubjeka/yii2-rest/issues/3

https://github.com/yiisoft/yii2-app-advanced/issues/24

http://php.net/manual/en/language.basic-syntax.phptags.php#116883

如何解决这个问题:

问题简而言之:PHP 标签是 <?php[whitespace character],而不仅仅是 <?php。圣!完全有道理,但老实说,谁会立即知道这一点?

Yii 2.x 使用(在高级演示应用程序中)“空”文件 config/bootstrap.php,只包含一个 php 标签 <?php 后面没有空格。当 bootstrap.php 现在通过 index.php 加载时,它被加载为包含 <?php 的文本文件,而不是解析为 PHP 文件。

您只需在标记后直接添加一个空格即可解决此问题。