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

Jus*_*tin 7 php frameworks silex

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

你把所有控制器调用放在app.php文件中吗?

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

$app->get('/about', function ($id) {
  ...
});
Run Code Online (Sandbox Code Playgroud)

或者你把它们放在单独的文件中?到目前为止,根get方法工作正常并呈现一个twig模板,但过去的任何事情都没有.

igo*_*orw 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'));
Run Code Online (Sandbox Code Playgroud)

有关安装的更多详细信息,请查看Silex文档中的重用应用程序.

  • 该链接不再有效.Provder doc在这里:http://silex.sensiolabs.org/doc/providers.html (3认同)