0

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

随着我的应用程序的规模越来越大,并且在多条路线中使用相同代码的需求增加,我想进一步组织所有内容..

我的想法是创建一些自定义类,然后与我的应用程序共享它们:

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

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

  1. 使用作曲家自动加载类(它应该在 Silex 中完成的方式)。
  2. 能够在我的班级中使用现有的 Doctrine DBAL 连接和方法。

我希望有人能给我一些提示,因为我发现 Silex 文档不是很有用,而且我是 Silex 和 Composer 的初学者。

4

1 回答 1

2

检查有关自动加载的作曲家文档,当您添加配置时,您应该运行composer dump-autoload以重新生成作曲家自动加载器。那么你的 require_once 应该不再需要了。

这很可能会起作用(假设 Test 类在 src/Test.php 中):

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

这将使 src/ 中的任何符合 PSR-0 的类都可以自动加载。

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

于 2012-11-20T13:15:48.423 回答