Symfony 1.2 to 2.3 migration

Posted by Bonswouar on Stack Overflow See other posts from Stack Overflow or by Bonswouar
Published on 2013-07-01T11:01:01Z Indexed on 2013/07/01 17:07 UTC
Read the original article Hit count: 266

Filed under:
|
|

I've got a pretty big Symfony 1.2 project to migrate.

First, I modified my .htaccess so I can have some pages handled by Symfony 2.

What I'd like to do, to make the migration smoother, is to be able to render some SF2 action/templates/methods/... inside SF1.

I added the autoloader to the SF1 app, so I can access to twig rendering methods and other stuff.

But how can I call a SF2 action ?

For example, if I want to migrate only the footer first, I would also need some php methods, not only rendering. That was previously in SF1 component, where should it be now ?

If you've got any suggestion about the way of migrating, don't hesitate !

EDIT 1 :

Apparently, the only way to do something like that is to render a full twig template, and/or in this template call some other partial twig templates with render(url, params).

Here is my SF1 code to be able to render twig templates :

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;
}

And so :

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

EDIT 2 :

That doesn't seem to work, if in a twig template I try to render an other one with {{render(controller('BUNDLE:CONTROLER:ACTION', {})) }} for example Twig_Error : The function "controller" does not exist. And if I try to render the url Unknown tag name "render".

I guess Symfony 2 twig functionalities are not loaded, how can I do that ?

EDIT 3 :

Ok, now I can do it, but I've got the following message...

Twig_Error_Runtime An exception has been thrown during the rendering of a template ("Rendering a fragment can only be done when handling a master Request.") in ...

© Stack Overflow or respective owner

Related posts about symfony2

Related posts about symfony1