Silex自定义类结构和加载

时间:2012-11-20 12:42:22

标签: php doctrine autoload composer-php silex

我正在使用Silex(微框架)构建应用程序。

随着我的应用程序规模不断扩大,并且需要在多条路线中使用相同的代码,我希望将所有内容组织得更多......

我的想法是创建一些自定义类,然后与我的应用分享:

$app['test'] = $app->share(function () {
    require_once('../vendor/acme/src/test.php');
    $testClass = new Test();
    return new $testClass;
});

这实际上有效,但我需要以下方面的帮助:

  1. 使用作曲家自动加载该类(它应该在Silex中完成)。
  2. 能够使用我班级中现有的Doctrine DBAL连接和方法。
  3. 我希望有人可以给我一些提示,但是我没有发现Silex文档非常有用,而且我是Silex和Composer的初学者。

1 个答案:

答案 0 :(得分:2)

检查composer docs about autoloading,当您添加配置时,应运行composer dump-autoload以重新生成composer自动加载器。那么你的require_once就不再需要了。

最有可能这样做(假设类测试在src / Test.php中):

{
    "autoload": {
        "psr-0": {
            "": "src/"
        }
    }
}

这将使src / autoloadable中的任何PSR-0兼容类。

关于你的第二点(在你的类中使用DBAL),你应该将你的类配置为访问db服务的silex服务。阅读http://silex.sensiolabs.org/doc/services.html

上的服务