【问题标题】:Moving a legacy application to Symfony2: How to execute native php scripts in a controller?将遗留应用程序迁移到 Symfony2:如何在控制器中执行原生 php 脚本?
【发布时间】:2012-09-11 17:30:21
【问题描述】:

我有一个遗留应用程序,我想转移到 Symfony2。这个应用程序不是在 MVC 中构建的,它没有 PSR-0 兼容性,它非常像一个遗留应用程序,因为 '/search.php' 指向一个文件 'search.php' 并且菜单、页眉和页脚都包含在内不同的文件共享。

如果我能以某种方式快速而肮脏地将这个应用程序插入到 Symfony2 中,然后开始一次一个地将部分移动到 Symfony2 应用程序架构中,那将是理想的。我真的不想做一些瀑布式的尝试来移植整个事情,然后在 3-6 个月内进行一些大规模的更新。任何人都可以推荐一种执行本机 php 脚本的方法,该脚本将包括 Symfony2 控制器中的 mysql 查询或其他一些最佳方法来执行此操作?我目前正在考虑可能包括 php 或 twig 模板中的文件。谢谢!

【问题讨论】:

    标签: php symfony legacy


    【解决方案1】:

    考虑在服务器级别进行。您的 Web 服务器应该能够将部分 URL 路由到新网站,并将其余部分路由到旧网站(至少 Nginx 能够做到)。继续进行重写后,您只需要更改 URL 重写并将其他 URL 路由到新应用程序。

    在 Symfony 控制器中执行此操作也应该相当容易(不过我还没有尝试过)。您需要一个后备路由,它会调用类似于以下的操作:

    public function legacyAction()
    {
        // decide which file to include
        $legacyFile = '/path/to/legacy-app/search.php';
    
        ob_start();
    
        include($legacyFile);
    
        $content = ob_get_clean();
    
        return new Response($content);
    }
    

    这可能过于简单,但应该展示这个想法。

    【讨论】:

      猜你喜欢
      • 2014-12-09
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多