将遗留应用程序移动到Symfony2:如何在控制器中执行本机php脚本?

将遗留应用程序移动到Symfony2:如何在控制器中执行本机php脚本?,php,symfony,legacy,Php,Symfony,Legacy,我有一个遗留应用程序,我想转移到Symfony2。这个应用程序不是在MVC中构建的,它没有PSR-0兼容性,它是一个非常传统的应用程序,因为“/search.php”指向一个文件“search.php”,菜单、页眉和页脚包含不同的共享文件 如果我能以某种方式快速地将这个应用程序插入Symfony2,然后开始一次一个地移动到Symfony2应用程序体系结构中,那将是理想的。我真的不想做一些瀑布式的尝试,把整个事情移植过来,然后在3-6个月内做一些大规模的更新。有谁能推荐一种执行原生php脚本的方法

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


如果我能以某种方式快速地将这个应用程序插入Symfony2,然后开始一次一个地移动到Symfony2应用程序体系结构中,那将是理想的。我真的不想做一些瀑布式的尝试,把整个事情移植过来,然后在3-6个月内做一些大规模的更新。有谁能推荐一种执行原生php脚本的方法,该脚本将在Symfony2控制器中包含mysql查询之类的内容,或者其他最好的方法?我目前正在考虑可能包括php或twig模板中的文件。谢谢

考虑在服务器级别执行此操作。您的web服务器应该能够将部分URL路由到新网站,其余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);
}
这可能过于简单化了,但应该说明这一点