用Symfony创建一个包含多个应用程序,普通PHP应用程序和静态页面的网站?

时间:2013-05-10 10:24:28

标签: symfony

我的老板非常喜欢流行语,他坚持认为我们应该使用Symfony 2创建我们的新网站。

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我同意bouscher。您可以将每个应用分发到捆绑包中。将Symfony用于静态页面并不会造成任何伤害,尤其是您将坚持使用应用程序的框架,更好地将它保持在一个平台中。对于静态页面,您可以使用twig创建一个只包含“views”(静态页面)的包。只需创建一些路由规则然后就可以了。多数民众赞成我对我的所作所为。

你会重写旧的PHP应用程序吗?或者只是稍微调整它以某种方式symfony友好?