2013-07-01 3 views
0

마이그레이션 할 상당히 큰 Symfony 1.2 프로젝트가 있습니다. 나는 2Symfony 1.2 to 2.3 마이그레이션

것은 내가 마이그레이션이 부드럽게 만들기 위해 할 싶습니다 무엇 심포니에 의해 처리 일부 페이지를 가질 수 있도록

첫째, 내 htaccess로 수정/일부 SF2 조치를 렌더링 할 수있다 템플릿/메소드/... SF1 내부.

SF1 앱에 오토로더를 추가 했으므로 나뭇 가지 렌더링 방법 및 기타 기능에 액세스 할 수 있습니다.

하지만 어떻게 SF2 액션을 호출 할 수 있습니까?

예를 들어, 바닥 글 만 먼저 마이그레이션하려는 경우 렌더링뿐만 아니라 일부 PHP 메소드가 필요할 것입니다. 그것은 SF1 구성 요소에 이전에 있었지만 지금은 어디에 있어야합니까?

마이그레이션 방법에 대한 제안 사항이 있으시면 언제든지 알려주십시오.

편집 1 :

분명히, 그런 일을 할 수있는 유일한 방법은 전체 나뭇 가지 템플릿을 렌더링하는 것입니다 및/또는이 템플릿에 render(url, params)와 다른 부분 나뭇 가지 템플릿을 호출합니다.

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

그래서 : 2

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

편집 : 보이지 않는다

작동하려면 여기

내 SF1 코드가 나뭇 가지 템플릿을 렌더링 할 수있다 , 나뭇 가지에 템플릿이있는 경우 {{render(controller('BUNDLE:CONTROLER:ACTION', {})) }} (예 : Twig_Error : The function "controller" does not exist)으로 렌더링하려고합니다. 그리고 URL을 렌더링하려고하면 Unknown tag name "render".

Symfony 2 나뭇 가지 기능이로드되지 않은 것 같습니다. 어떻게해야합니까?

편집 3 :

좋아, 지금

Twig_Error_Runtime 예외가의 렌더링 동안 발생되었습니다 ... 나는 그것을 할 수 있지만 다음과 같은 메시지가 있어요 템플릿 (마스터 요청을 처리 할 때에 만 단편 렌더링이 가능합니다.) ...

+0

심포니 1에서 2로 옮길 경우, 많은 사람들이 생각하기에 완전한 코드 재 작성이 필요합니다. –

+0

SF1에서 일부 SF2 템플릿을 렌더링 할 수 있기를 바랍니다. 그러면 쉽게 마이그레이션 할 수 있습니다. // EDIT : 짧게하기 위해 SF1에서 SF2를 부트 스트랩하려고 했으므로 전체 모듈을 하나씩 다시 쓰고 (.htacess 디스 패칭) SF1에서 일부를 렌더링합니다 (예 : SF1에서 SF2 메뉴 렌더링).). – Bonswouar

답변

0

편집 : 해결했습니다!

여기 심포니 1 일부 심포니 2 개 기능, 를 사용 나뭇 가지 템플릿 렌더링 및 할 수 에 내 전체 부트 스트랩 방법이다.

$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'); 
+0

답변을 삭제하고 질문에이 정보를 추가해야합니다. – j0k

관련 문제