【问题标题】:Changing namespace on my controller - Silex framework在我的控制器上更改命名空间 - Silex 框架
【发布时间】:2017-04-30 01:56:43
【问题描述】:

我直接开门见山,我只是把控制器命名空间Musique\Controller改成了STM\Controller

 namespace STM\Controller;

use Silex\Application;

class HomeController{

public function indexAction(Application $app){
    return $app['twig']->render("index.html.twig");
}

还更改了我的 composer.json 文件

{
"name": "jasonazoulay/SoTrustMe",
"description": "Tiers de confiance",
"authors": [
    {
        "name": "Jason Azoulay",

    }
],
"require": {
    "silex/silex": "^2.0",
    "doctrine/dbal": "~2.5",
    "twig/twig": "^1.33",
    "symfony/asset": "^3.2",
    "symfony/twig-bridge": "^3.2",
    "symfony/form": "~2.8|3.0.*",
    "symfony/translation": "~2.8|3.0.*",
    "symfony/config": "~2.8|3.0.*"
},
"autoload": {
    "psr-4": {"SoTrustMe\\": "src"}
}

} 当然还有路线

$app->get('/',"STM\Controller\HomeController::indexAction")->bind('home');

现在我得到了这个错误

ControllerResolver.php 第 187 行中的 InvalidArgumentException: 类“STM\Controller\HomeController”不存在。

虽然在我更改命名空间之前它工作得很好!

请帮帮我

【问题讨论】:

    标签: php silex


    【解决方案1】:

    由于您正在使用 composer 加载您的类,并且您在项目中引入了一个新目录,您将需要重新运行:composer dump-autoload

    这将重新生成需要包含在项目中的所有类的列表并更新 Composer 缓存。有关此问题的更多详细信息,您可以查看this 问题。

    【讨论】:

    • 非常感谢,也许这行得通,但我的问题是这部分 "autoload": { "psr-4": {"SoTrustMe\\": "src"} } 我只需要输入根命名空间..所以 STM 然后运行 ​​composer update 为这个命名空间生成新的自动加载器并解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2016-11-17
    • 2014-05-19
    • 2015-08-31
    • 2011-03-09
    • 2011-06-19
    • 2020-06-14
    相关资源
    最近更新 更多