嵌套Silex应用程序

时间:2012-12-19 08:21:58

标签: php web-applications routing silex

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

1 个答案:

答案 0 :(得分:0)

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