调用和加载控制器类



我有问题获得类自动加载工作在Silex骨架我放在一起。我在另一个项目中工作,但我不知道我在这里做错了什么。我的目录是这样的:

root
 -src
    -Controller
       -HelloController.php
    -app.php
 -vendor
 -web
   -index.php
 -composer.json

这是我的index.php

<?php
$app = require __DIR__.'/../src/app.php';
$app->run();

app.php

<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new SilexApplication();
$app['debug'] = true;
$app->get("/hello/{name}", 'AppControllerHelloController::hello');
return $app;

HelloController.php

<?php
namespace AppController;
use SilexApplication;
use SymfonyComponentHttpFoundationResponse;
class HelloController
{
    public function hello($name)
    {
        return new Response('<html><head></head><body><h1>Hello, '.$name.'</h1></body></html>');
    }
}

和composer.json

{
    "require": {
        "silex/silex": "^1.3"
    },
    "autoload": {
      "psr-4": {
        "App\": "/src"
      }
    }
}

每当我尝试在浏览器中打开index.php/hello/world时,我得到这个错误:

InvalidArgumentException in ControllerResolver.php line 153: 
Class "AppControllerHelloController" does not exist

您的psr-4不工作。在'/src'

前加一个点
"App\": "./src"

或将斜杠移到末尾

"App\": "src/"

或者直接去掉斜杠。路径必须是相对的

in composer。json变化

"App\": "/src"

"App\": "src"

你可以找到SilexSkeleton与控制器作为php类在GitHub上的例子:https://github.com/jaresz/SilexSkeleton

相关内容

  • 没有找到相关文章

最新更新