将Symfony2集成到Drupal 5系统

将Symfony2集成到Drupal 5系统,drupal,symfony,Drupal,Symfony,我们有一个由Drupal5构建的有5年历史的系统。它不是一个小系统(大约5万行代码),大部分功能与“内容管理”无关 因此,我们正在考虑将Symfony2集成到当前系统中。理想情况是在使用Symfony2开发新功能的同时,继续使用当前代码实现当前功能。慢慢地,我们将越来越多的代码从Drupal迁移到Symfony 我的问题是,你建议如何实施这一点?我对以下方法进行了思考: 在Drupal中创建一个模块。此模块将包含Symfony文件,并将加载Symfony的类加载器。以前有人这样做过吗?是否有一些

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

因此,我们正在考虑将Symfony2集成到当前系统中。理想情况是在使用Symfony2开发新功能的同时,继续使用当前代码实现当前功能。慢慢地,我们将越来越多的代码从Drupal迁移到Symfony

我的问题是,你建议如何实施这一点?我对以下方法进行了思考:

  • 在Drupal中创建一个模块。此模块将包含Symfony文件,并将加载Symfony的类加载器。以前有人这样做过吗?是否有一些关键的事情我应该知道

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

  • 还有其他建议吗


  • 谢谢

    请注意,如果您想在同一台机器上运行Symfony2(5.3.8下的任何内容,配置程序都会反对),您可能必须在运行Drupal的机器上升级PHP版本。如果你想坚持使用Drupal-,你可能还想坚持一段时间。此外,Symfony2还存在一个测试版


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

    因为我是新来的,所以一篇文章中不能有两个以上的链接。我还想说:


    如果这些都不能满足您的需求,我会开始重写核心功能(用户、权限等)。除了搜索github,您还可以尝试找到解决类似问题的捆绑包。

    谢谢。实际上,我们已经将PHP更新为5.3。Drupal8可能是一个很好的选择,但是要获得核心和基本模块的稳定版本还需要一段时间。关于vhost,我不必指向一个特定的文件,如果我可以为一个目录这样做就可以了。例如:“www.exmpale.com'=>/var/www/drupal。”www.example.com/mysymfony'=>/var/www/symfony。这可能吗?据我所知,虚拟主机无法做到这一点-如果“www.example.com”是虚拟主机,则“”是该虚拟主机根目录中的资源。但您可以创建“mysymfony.example.com”作为指向/var/www/symfony(或者更可能是/var/www/symfony/web)的虚拟主机。但这与httpd有关,而不是drupal或symfony。无论如何,你为什么要这么做?因为我希望所有页面都转到Drupal,但其中一些页面转到Symfony2。如果我更改drupal或symfony的index.php并从那里重定向,我可以得到相同的结果,但我更喜欢从Web服务器级别执行。对于角色和权限,我认为我必须坚持使用drupal表,因为那里已经配置了用户/角色/权限。因此,我将无法使用Symfony2 bundle:“FOSUserBundle”。也许不能,但请参见例如FOSFacebookBundle或FOSTwitterBundle-它们根据其他资源对用户进行身份验证。我想你可能会对Symfony2感兴趣,如果你是新来的,我强烈建议你花一点钱,然后去购买并观看屏幕广播,它们会让你快速启动并运行。