我希望在我的控制器" ItemController"中访问一个函数。我总是有错误; 致命错误:Class' Iso \ Controller \ ItemController'没找到...
testsilex / Silex
- app
- composer.json
- src
- routes.php
- Iso
- Controller
- ItemController.php
- vendor
- web
- index.php
我在Silex / Web中有一个index.php文件
ini_set('display_errors', 1);
require_once __DIR__.'/../vendor/autoload.php';
$app = require __DIR__.'/../app/app.php';
require __DIR__.'/../src/routes.php';
$app['debug'] = true;
$app->run();
我的itemcontroller看起来像:
<?php
namespace Iso\Controller;
use Silex\Application;
class ItemController
{
public function indexAction(Request $request, Application $app)
{
echo "it works";
}
}
我的routes.php看起来像:
$app->mount('/testsilex/silex/test', new Iso\Controller\ItemController());
我的composer.json我添加了下一行:
"autoload": {
"psr-0": {"Iso": "src/"}
}
有谁知道为什么我的班级找不到?这将是一个小错误,但我无法找到它。谢谢:))
答案 0 :(得分:4)
答案 1 :(得分:1)
我想说你需要一个绝对标识符来控制你的控制器类。这是一个领先的反斜杠:
$app->mount('/testsilex/silex/test', new \Iso\Controller\ItemController());
或者使用use
语句导入名称空间,该语句将始终使用完全限定名称。
...
use Iso\Controller;
...
$app->mount('/testsilex/silex/test', new ItemController());
...