我有一个相当大的 Symfony 1.2 项目要迁移。
首先,我修改了我的 .htaccess,以便我可以让 Symfony 2 处理一些页面。
为了使迁移更顺畅,我想做的是能够在 SF1 中呈现一些 SF2 动作/模板/方法/...
我将自动加载器添加到 SF1 应用程序中,因此我可以访问树枝渲染方法和其他东西。
但是我怎么能调用 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
. 如果我尝试呈现 url Unknown tag name "render"
。
我猜 Symfony 2 twig 功能没有加载,我该怎么做?
编辑 3:
好的,现在我可以做到了,但是我收到以下消息...
Twig_Error_Runtime 在渲染模板期间抛出异常(“渲染片段只能在处理主请求时完成。”)在...