かなり大きな Symfony 1.2 プロジェクトを移行する必要があります。
まず、いくつかのページを Symfony 2 で処理できるように .htaccess を変更しました。
移行をスムーズにするために、私がやりたいことは、SF1 内でいくつかの SF2 アクション/テンプレート/メソッド/... をレンダリングできるようにすることです。
オートローダを SF1 アプリに追加したので、twig レンダリング メソッドなどにアクセスできます。
しかし、どうすれば SF2 アクションを呼び出すことができますか?
たとえば、最初にフッターのみを移行する場合は、レンダリングだけでなく、いくつかの php メソッドも必要になります。以前は SF1 コンポーネントにありましたが、今はどこにありますか?
移行の方法について何か提案があれば、ためらわないでください。
編集1:
どうやら、そのようなことを行う唯一の方法は、完全な twig テンプレートをレンダリングすること、および/またはこのテンプレートで他の部分的な twig テンプレートを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
. そして、私が url をレンダリングしようとするとUnknown tag name "render"
.
Symfony 2 の twig 機能がロードされていないと思います。
編集3:
わかりました、できるようになりましたが、次のメッセージが表示されました...
Twig_Error_Runtime テンプレートのレンダリング中に例外がスローされました (「フラグメントのレンダリングは、マスター リクエストの処理中にのみ実行できます。」) ...