问题描述
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();