【发布时间】:2012-12-19 08:21:57
【问题描述】:
如何嵌套 Silex 应用程序?
我正在为我的客户设置一个项目演示,以便他们能够访问 mydomain.net/project/demo 并实时查看他们的网站。
我的目录结构:
www
mydomain.net
projects
client_project
app
web
index.php <-client project front controller
another_client_project
app
web
index.php <-another client project front controller
src
vendor
web <-apache docroot
index.php <-front controller for my site
所以我的想法是,我应该能够在我的前端控制器上创建一个路由,它将用户代理引用到嵌套的、客户端项目特定的前端控制器之一。网址可能类似于:http://mydomain.net/projects/client_project/
Silex 有一个方便的工具来发出他们所谓的子请求,如下所示:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
$app->get('/', function () use ($app) {
// redirect to /hello
$subRequest = Request::create('/hello', 'GET');
return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});
所以...这就是我搁浅的地方。我可以只制作一个引用给定嵌套前端控制器的请求吗?这需要一些 mod_rewrite 操作吗?
【问题讨论】:
-
那么设置一些子域呢?应用程序不相关,这是最简单的事情。
-
这听起来完全合理,并且足够简单,可以称为“符合常识的”选项。不过,我仍然很想知道这是否可能。
-
答案是否定的:$app->handle 不会重定向任何东西,它是 Silex 的内部方案。所以除非你的项目代码是你的主应用程序的一部分,否则你不能那样做。
-
啊好的。好吧,这是一个想法。谢谢!
标签: php web-applications routing silex