gpt4 book ai didi

php - Silex 命名空间 : class MainController does not exist

转载 作者:搜寻专家 更新时间:2023-10-31 21:06:57 25 4
gpt4 key购买 nike

我尝试使用 Silex Framework,但我认为命名空间有问题。

当我实例化我的类 MainController 时,出现以下错误:类“MainController”不存在

这里是我的 MainController.php 中的命名空间声明:

    namespace App\Controllers;

use Silex\Application;

class MainController implements \Silex\ControllerProviderInterface {
....

在我的 app.php 中:

$app->mount("/", new \App\Controllers\MainController());

我的 composer.json 中有一个自动加载:

    "autoload": {
"psr-4": {"App\\": "app/"}
}

我的项目结构是这样的:

|--应用程序/
|----app.php
|---- Controller /
|--------MainController.php
|--网页/
|----index.php

非常感谢您的帮助:)

最佳答案

我相信您的问题是由您命名目录 controllers 的方式引起的。根据关于 PSR-4 标准的文档:

5) Alphabetic characters in the fully qualified class name MAY be any combination of lower case and upper case.

6) All class names MUST be referenced in a case-sensitive fashion.

因此,将您的目录重命名为 Controllers 并重新运行 composer update

另外,看看 ServiceControllerProvider关于将 Controller 实例设置为回调的正确方法。传递新实例可能不是最好的(如果不是错误的)做事方式。你应该做这样的事情:

$app->get('/', 'App\\Controllers\\MainController::index');

关于php - Silex 命名空间 : class MainController does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com