首页 > 解决方案 > 关于“输出缓冲区中的意外数据”的 Slim 错误与 PHP 标记或结束 PHP 标记之前的字符无关

问题描述

我有这个简单的代码结构:

api.php:

<?php
    require_once 'api/Main.class.php';
    new Main();

api/Main.class.php:

<?php
    require_once __DIR__ . '../../vendor/autoload.php';
    require_once 'Router/Router.class.php';

    class Main
    {

        function __construct()
        {
            $router = new Router();
            $router->getRoute();
        }

    }

路由器/Router.class.php:

<?php
    use \Psr\Http\Message\ServerRequestInterface as Request;
    use \Psr\Http\Message\ResponseInterface as Response;

    require_once __DIR__.'../../../vendor/autoload.php';

    class Router
    {

        function getRoute()
        {
            $app = new \Slim\App;

            $app->get(
                '/',
                function (Request $request, Response $response, array $args) {
                    $response->getBody()->write('Home');

                    return $response;
                }
            );

            $app->run();
        }

    }

当我去时,这会产生以下错误api.php<b>Fatal error</b>: Uncaught RuntimeException: Unexpected data in output buffer. Maybe you have characters before an opening &lt;?php tag? in /Path/to/project/root/vendor/slim/slim/Slim/App.php:625

这个错误没有给我太多信息。我一直试图让 Slim 在 OOP 代码库中工作,但每次我尝试这个时都会弹出这个错误。

我也尝试过返回$app,所以我可以在其他地方运行 t,这也会产生同样的错误。这段代码出了什么问题?

标签: phpapacherestapislim

解决方案


推荐阅读