我有一個相當大的Symfony 1.2項目遷移。Symfony 1.2到2.3遷移
首先,我修改了我的.htaccess所以我可以通過Symfony的處理某些頁面2.
我今天準備這樣做,使遷移更順暢,是能夠渲染一些SF2動作/模板/方法/ ...在SF1內。
我將自動加載器添加到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
。如果我嘗試呈現網址Unknown tag name "render"
。
我猜Symfony 2 twig功能沒有加載,我該怎麼做?
編輯3:
好了,現在我可以做到這一點,但我有以下消息...
Twig_Error_Runtime一個例外的渲染 期間被扔一個模板(「只能在處理 主請求時完成一個片段的渲染。」)...
對於從symfony 1移動到2完整的代碼重寫是必要的,許多人認爲改變了。 –
我知道,我只希望能夠在SF1中渲染一些SF2模板,以便遷移更容易。編輯: //編輯: 爲了簡短起見,我試圖在SF1中引導SF2,所以我可以逐個重寫我的完整模塊(.htacess dispatching)並在SF1中渲染一些內容(例如在SF1中渲染SF2菜單)。 – Bonswouar