在没有composer的情况下注册silex

时间:2014-04-14 15:34:47

标签: php composer-php autoload silex

我正在使用silex为我正在构建的应用程序构建api,并且我想将控制器抽象为不同的文件。

我在一个非常严格的IT部门为一家大公司工作,他们不会让我安装作曲家。出于这个原因,我需要通过$loader->add()函数手动注册名称空间,但是我收到以下错误:

Fatal error: Class 'App\Controller\SessionController' not found in C:\path\to\webroot\App\bootstrap.php on line 9

有谁知道为什么自动加载器没有拿起我的App命名空间?

目前,我的应用程序结构如下:

App/
    Controller/
        ApiControllerAbstract.php
        SessionController.php
    bootstrap.php
vendor/
www/
    index.php

的index.php

require_once "../app/bootstrap.php";

bootstrap.php中

$loader = require_once __DIR__.'/../vendor/autoload.php';
$loader->add('App', __DIR__ . '/../App/');


$app = new Silex\Application();


$app->mount('/session', new App\Controller\SessionController());

$app->run();

SessionController.php

namespace App\Controller;

class SessionController extends ApiControllerAbstract {

    public function connect( $app)
    {
        $this->app = $app;
        $controller_collection = $app['controllers_factory'];

        // DECLARE ALL YOUR ROUTES HERE
        //...


    }

}

1 个答案:

答案 0 :(得分:2)

您好, 以下一行:

$loader->add('App', __DIR__ . '/../App/');

应该是:

$loader->add('App', __DIR__ . '/../');