如何在Silex PHP Framework项目中设置控制器


How do you setup the controller in a Silex PHP Framework project?

到目前为止,我似乎无法通过根路径进行任何工作:

您是否将所有控制器调用都放在app.php文件中?

$app->get('/', function ($id) {
  ...
});
$app->get('/about', function ($id) {
  ...
});

或者你把它们放在单独的文件里?到目前为止,root-get方法工作得很好,可以渲染一个小树枝模板,但任何过去的方法都无济于事。

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应用程序。