Symfony 1.2到2.3迁移

时间:2013-07-01 11:01:01

标签: symfony symfony1 migration

我有一个非常大的Symfony 1.2项目要迁移。

首先,我修改了我的.htaccess,这样我可以让Symfony 2处理一些页面。

为了使迁移更顺畅,我想做的是能够在SF1中渲染一些SF2动作/模板/方法/ ....

我将自动加载器添加到SF1应用程序中,因此我可以访问twig渲染方法和其他内容。

但是如何调用SF2动作?

例如,如果我想首先只迁移页脚,我还需要一些php方法,而不仅仅是渲染。以前是在SF1组件中,现在应该在哪里?

如果您对迁移方式有任何建议,请不要犹豫!

编辑1:

显然,执行此类操作的唯一方法是渲染完整的树枝模板,和/或在此模板中使用render(url, params)调用其他部分树枝模板。

这是我的SF1代码,可以渲染树枝模板:

public static function getTwig()
{

    require_once __DIR__.'SF2_PATH/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php';
    Twig_Autoloader::register();
    $loader = new Twig_Loader_Filesystem( __DIR__.'SF2_PATH/sf2/src/VENDOR/BUNDLE/');
    $twig = new Twig_Environment($loader, array(
        'cache' => __DIR__.'SF2_PATH/sf2/app/cache/dev/twig',
    ));
    return $twig;
}

所以:

$twig->loadTemplate('header.html.twig');

编辑2:

这似乎不起作用,如果在树枝模板中我尝试使用{{render(controller('BUNDLE:CONTROLER:ACTION', {})) }}呈现另一个例如Twig_Error : The function "controller" does not exist。如果我尝试渲染网址Unknown tag name "render"

我猜Symfony 2 twig功能没有加载,我该怎么做?

编辑3:

好的,现在我可以做到,但我收到了以下消息......

  

Twig_Error_Runtime渲染期间抛出异常   模板(“渲染片段只能在处理时才能完成   主请求。“)in ...

1 个答案:

答案 0 :(得分:0)

编辑:我解决了!

以下是呈现Twig模板的完整引导方法,并能够在Symfony 1 中使用某些Symfony 2功能,。< / p>

    $loader = require_once __DIR__.'/../../../sf2/app/bootstrap.php.cache';
    Debug::enable();
    require_once __DIR__.'/../../../sf2/app/AppKernel.php';

    $kernel = new AppKernel('dev', true);
    $kernel->loadClassCache();
    Request::enableHttpMethodParameterOverride();
    $request = Request::createFromGlobals();
    $kernel->boot();
    $kernel->getContainer()->enterScope('request');
    $kernel->getContainer()->set('request', new \Symfony\Component\HttpFoundation\Request(), 'request');
    $this->container = $kernel->getContainer()->get('twig');