到目前为止,我似乎无法通过根路径工作:
您是否将所有控制器调用都放在app.php文件中?
$app->get('/', function ($id) {
...
});
$app->get('/about', function ($id) {
...
});
或者你把它们放在单独的文件中? 到目前为止,根get方法工作正常,并呈现一个twig模板,但过去的任何事情都没有。
答案 0 :(得分:15)
Silex是一个微框架。它使您能够在单个文件中定义应用程序。但这并不意味着你必须这样做。
我通常做的是在一个app.php
文件中定义所有控制器,但是将可重用的部分提取到src
目录中的类中,例如src/ProjectName/SomeClass.php
,可以自动加载还有单元测试。
现在,如果控制器数量增加,您可以将应用程序拆分为“模块”并将其安装在主应用程序下(例如,在/admin
下安装管理面板)。 Silex支持安装,如下所示:
require_once __DIR__.'/silex.phar';
$app = new Silex\Application();
$app->mount('/admin', new Silex\LazyApplication(__DIR__.'/admin.php'));
有关安装的更多详细信息,请查看Silex文档中的Reusing applications。