【问题标题】:Creating a website with multiple apps, plain PHP apps and static pages with Symfony?使用 Symfony 创建一个包含多个应用程序、普通 PHP 应用程序和静态页面的网站?
【发布时间】:2013-05-10 23:36:01
【问题描述】:

我的老板是流行语的忠实粉丝,他坚持认为我们应该使用 Symfony 2 创建我们的新网站。

我已经使用 Symfony 开发了几个应用程序,但我现在遇到的问题是这个网站由几个应用程序、静态网页甚至是主要由意大利面条代码组成的旧 PHP 应用程序组成。

  • 我是否需要安装各种 Symfony,每个应用一个,或者我可以 用一样吗?我会为此使用捆绑包,还是有更好的方法?
  • 使用 Symfony 提供静态网页是否有意义?
  • 如果我将 Symfony 安装在站点的根目录以便我可以使用它来创建通用登录系统,我可以指示 Symfony 忽略对旧应用程序的请求吗?

【问题讨论】:

标签: symfony


【解决方案1】:
  • 就像您建议的那样:对于应用程序,我会使用一个 Symfony 安装,然后为每个应用程序使用一个 Bundle
  • 为了实现连贯的集成,我将从 Symfony 提供静态页面,从性能上讲这并没有什么区别,因为它们可以很好地从 Symfony 缓存中提供。从 Symfony 2.2 开始,静态页面的集成也非常简单,由您的 bundle 路由配置中的 FrameworkBundle:Template:template 完成。 (例如,请参见此处:http://symfony.com/blog/new-in-symfony-2-2-cache-support-for-static-pages
  • 对于旧应用程序的请求,我认为最好将这些请求捕获并重定向到新的相应应用程序,同时根据新应用程序的需要重写参数。这可能由 htaccess 完成。

【讨论】:

    【解决方案2】:
    1. 首先,围绕所有现在可以工作和以后应该工作的页面构建某种测试工具。
    2. 如果整个网站都在同一个域中提供服务,或者您正在共享实体或其他配置,那么一定要使用一个 Symfony 安装。您不想更新多个安装,或手动将数据从一个数据库推送到另一个数据库。如果他们位于不同的域中,并且您希望每个用户只有一次登录,请使用 SSO。
    3. 查看您的流量是否通过 Symfony 提供静态页面。如果您有 1000 多个并发用户,并且 80%​​ 的流量流向这些静态页面,那么我会说要务实并从 CDN 为它们提供服务。另一方面,如果您的流量在动态内容中传播得稍微低一些或更多,那么一切都在 Symfony 中会更容易。
    4. 您可以阻止或转发 URL,但如果可能的话最好通过网络服务器(Apache、Nginx)来完成,因为加载整个 Symfony 框架只是为了进行重定向是没有意义的。

    【讨论】:

      【解决方案3】:

      我同意布歇尔的观点。每个人都可以将您的应用程序分发到捆绑包中。将 Symfony 用于静态页面并没有什么坏处,尤其是您会坚持使用应用程序的框架,最好将其完整地保存在一个平台上。对于静态页面,您可以像使用 twig 一样创建只包含“视图”(您的静态页面)的包。只需创建一些路由规则就可以了。这就是我对我所做的。

      您会重写旧的 php 应用程序吗?或者只是稍微调整一下以某种方式对 symfony 友好?

      【讨论】:

        猜你喜欢
        • 2018-12-22
        • 1970-01-01
        • 1970-01-01
        • 2019-04-17
        • 1970-01-01
        • 1970-01-01
        • 2020-02-22
        • 2011-03-28
        • 1970-01-01
        相关资源
        最近更新 更多