在使用 Slim 和 PHP-DI 时,收到警告说
Uncaught Error: Call to undefined method App\App::run()
代码如下:
require __DIR__ . "/../vendor/autoload.php";
$app = new \DI\Bridge\Slim\Bridge;
$app->run();
在最新版本的 PHP-DI 中,有一些变化
DI\Bridge\Slim\App
已更改为DI\Bridge\Slim\Bridge
。因此,如果您正在使用use DI\Bridge\Slim\App as DiBridge;
可能无法正常工作。而是尝试use DI\Bridge\Slim\Bridge as DiBridge;
PHP-DI Bridge 类中没有$app->run()
定义方法,因此未定义。而是使用$app->create()
方法。
笔记
为了在 上使用create()
方法$app
,请确保您安装了 slim/psr7,否则您可能会看到血腥的红色警告。如果您没有安装 slim/psr7,请使用以下命令进行安装
composer require slim/psr7
所以在确保 slim/psr7 存在之后,代码必须如下所示
require __DIR__ . "/../vendor/autoload.php";
$app = new \DI\Bridge\Slim\Bridge;
$app->create();