1

如何嵌套 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 操作吗?

4

1 回答 1

0

由于您可能使用 mod_rewrite(或其在 nginx、lighttpd 等中的类似物)将所有内容提供给 index.php 以进行路由,因此您也可以使用它来构建这些嵌套应用程序。只需为每个客户端项目构建一个重写模式并将其发送到特定于客户端的 index.php

于 2013-10-10T00:30:30.807 回答