未捕获的错误:在Slim-4 php和php-di中调用未定义的方法App \ App :: run

问题描述

使用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();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...