duannaoben8011 2017-04-29 07:29 采纳率: 0%
浏览 80
已采纳

更改控制器上的命名空间 - Silex框架

I'll go straight to the point, I only changed the controller namespace Musique\Controller to STM\Controller

 namespace STM\Controller;

use Silex\Application;

class HomeController{

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

also changed my composer.json file

{
"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"}
}

} and of course the route also

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

and now i get this error

InvalidArgumentException in ControllerResolver.php line 187: Class "STM\Controller\HomeController" does not exist.

though it was working just fine before I change the namespace !

please help me

展开全部

  • 写回答

1条回答 默认 最新

  • douxing7101 2017-04-29 09:56
    关注

    Since you are loading your classes with composer and you introduced a new directory in your project you are going to need to re-run: composer dump-autoload

    this will regenerate the list of all classes that need to be included in the project and updates the Composer cache. For more detail regarding this issue you could have a look at this question.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?