我正在使用Silex(微框架)构建一个应用程序。
随着我的应用程序越来越大,并且在多个路由中使用相同的代码的需求也在增加,我想把所有东西组织得更多一点。
我的想法是创建一些自定义类,然后与我的应用程序共享它们:
$app['test'] = $app->share(function () {
require_once('../vendor/acme/src/test.php');
$testClass = new Test();
return new $testClass;
});
这实际上有效,但我需要以下方面的帮助:
- 使用作曲家自动加载类(它应该在 Silex 中完成的方式)。
- 能够在我的类中使用现有的 Doctrine DBAL 连接和方法。
我希望有人能给我一些如何继续的提示,因为我发现 Silex 文档不是很有用,而且我是 Silex 和作曲家的初学者。
查看有关自动加载的作曲家文档,添加配置后,您应该运行composer dump-autoload
来重新生成作曲家自动加载器。那么你的require_once就不再需要了。
这很可能有效(假设类测试在 src/Test.php 中):
{
"autoload": {
"psr-0": {
"": "src/"
}
}
}
这将使 src/自动加载内的任何符合 PSR-0 的类都变得可。
关于第二点(在类中使用 DBAL),您应该将类配置为访问db
服务的 silex 服务。阅读 http://silex.sensiolabs.org/doc/services.html 的服务