【问题标题】:Integrate Symfony2 to a Drupal 5 system将 Symfony2 集成到 Drupal 5 系统
【发布时间】:2013-01-30 01:33:04
【问题描述】:

我们有一个由 Drupal 5 构建的 5 年历史的系统。它不是一个小系统(大约 50K 行代码),大部分功能与“内容管理”无关。

出于这个原因,我们正在考虑将 Symfony2 集成到我们当前的系统中。理想的做法是在使用 Symfony2 开发新功能的同时继续使用当前代码来实现当前功能。慢慢地,我们会将越来越多的代码从 Drupal 转移到 Symfony。

我的问题是您建议如何实施?我认为以下方法:

  1. 在 Drupal 中创建一个模块。该模块将包含 Symfony 文件并将加载 Symfony 的类加载器。以前有人这样做过吗?我应该注意一些重要的事情吗?

  2. 创建一个单独的 Symfony 安装,并希望创建一个指向网站中某些页面的不同虚拟主机记录。据我所知,我可以将 vhost 配置为当前主机的子主机(例如 mysymfony.mydrupal.com)。但我无法将其配置为指向同一域中的特定路径(mydrupal.com/mysymfony.php)。这是真的?在这种方法中,那些使用 Symfony 的页面的性能会更好,因为它不需要 Drupal 引导程序。

  3. 还有其他建议吗?

谢谢!

【问题讨论】:

    标签: drupal symfony


    【解决方案1】:

    请注意,如果您想在同一台机器上运行 Symfony2,您可能必须在运行 Drupal 的机器上升级您的 PHP 版本(任何低于 5.3.8 的机器都会反对)。如果您想坚持使用 Drupal -Drupal 8 is integrating Symfony2 components,您可能还想坚持一下。此外,Symfony2 还存在一个 content management framework(无论如何都是测试版)。

    关于虚拟主机,您是正确的 - 您将虚拟主机指向目录,而不是文件。但是,如果需要,您可以创建一个重写规则以重定向到特定页面(查看 Symfony 发行版中 web/ 目录中包含的 .htaccess 文件 - 默认情况下,它将请求重定向到 app.php)。

    【讨论】:

    • 谢谢。实际上,我们已经将 PHP 更新到了 5.3。 Drupal 8 可能是一个不错的选择,但核心和基本模块的稳定版本需要一段时间。关于虚拟主机,我不必指向特定的文件,如果我可以为目录做就可以了。例如:'www.exmpale.com' => /var/www/drupal。 'www.example.com/mysymfony' => /var/www/symfony。这可能吗?
    • 据我所知,您不能对虚拟主机执行此操作 - 如果“www.example.com”是虚拟主机,则“example.com/mysymfony”是该虚拟主机根目录中的资源.但是您可以创建“mysymfony.example.com”作为虚拟主机指向/var/www/symfony(或者更可能是/var/www/symfony/web)。但这是与 httpd 相关的,而不是 drupal 或 symfony。无论如何,您为什么要这样做?
    • 因为我希望所有页面都转到 Drupal,但其中一些转到 Symfony2。如果我更改 drupal 或 symfony 的 index.php 并从那里重定向,我可以获得相同的结果,但我更喜欢从网络服务器级别进行。
    【解决方案2】:

    因为我是新来的,所以帖子中的链接不能超过两个。我还想说:

    如果existing bundles 都不能满足您的需求,我将开始重写核心功能(用户、权限等)。除了搜索 github,您还可以尝试 knpbundles.com 查找解决类似问题的包。

    【讨论】:

    • 对于角色和权限,我认为我必须坚持使用 Drupal 表,因为用户/角色/权限已经在那里配置。结果我将无法使用 Symfony2 捆绑包:'FOSUserBundle'。
    • 也许不是,但请参见例如FOSFacebookBundle 或 FOSTwitterBundle - 他们根据其他资源对用户进行身份验证。我想你可能对symfony.com/doc/2.0/cookbook/security/… 感兴趣
    • 如果您是 Symfony2 的新手,我强烈建议您花一点钱去购买并观看 knpuniversity.com 的截屏视频 - 他们会让您振作起来并且跑得很快。
    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多