2016-08-18 2 views
2

슬림 프레임 워크를 처음 사용하고 있으며, 또한 templatizing을 위해 나뭇 가지를 사용하고 있습니다. 그 파일의 내용이 나는 또한 멀티 - 언어와 내가 번역의 캐릭터를 호출하는 방식을 지원하는 문자열 파일.twig 파일 슬림 프레임 워크에서 PHP 코드 사용

<form action="index.html" method="get"> 
      <div class="form-group"> 
      <input type="text" class="form-control" placeholder="Full Name"> 
      </div> 
</form> 
있습니다 랭 ("some_string 인 land.twig 파일이 ");. land.twig 파일은 컨트롤러에서 렌더링됩니다. 내 질문은 그 나뭇 가지 파일에 html 요소에 대한 자리 표시 자 특성 내에 lang ("some_string")을 어떻게 추가 할 수 있습니까?

답변

3

Twig_SimpleFilter를 사용할 수 있습니다. 당신이 슬림 사용하고 그 나뭇 가지 통합 당신이 나뭇 가지 구성 요소 내에서 필터를 추가해야하기 때문에

require_once '/path/to/lib/Twig/Autoloader.php'; 
Twig_Autoloader::register(); 

$loader = new Twig_Loader_Filesystem('/path/to/templates'); 
// an anonymous function 
$filter = new Twig_SimpleFilter('lang', function ($string) { 
    //do stuff 
    return $string; 
}); 

$twig = new Twig_Environment($loader); 
$twig->addFilter($filter); 

다음 템플릿에서 당신은

<input type="text" class="form-control" placeholder="{{ 'Full Name'|lang }}"> 

를 사용할 수 있습니다.

// Register component on container 
$container['view'] = function ($container) { 
    $view = new \Slim\Views\Twig('path/to/templates', [ 
     'cache' => 'path/to/cache' 
    ]); 
    $view->addExtension(new \Slim\Views\TwigExtension(
     $container['router'], 
     $container['request']->getUri() 
    )); 

    $filter = new Twig_SimpleFilter('lang', function ($string) { 
     //do stuff 
     return $string; 
    }); 

    $view->getEnvironment()->addFilter($filter); 

    return $view; 
}; 

기타는 i18n extension입니다.

+0

어디에서이 익명의 기능을 넣어야합니까? 부트 스트랩 파일에? –

+0

어디에 상관 없어요. 나뭇 가지 환경을 정의 할 때마다 정의해야하며 이후에 필터를 정의해야합니다. –

+0

게시물을 편집했습니다. 기본적으로 템플릿을 찾을 위치를 나뭇 가지에 알려줍니다. http://twig.sensiolabs.org/doc/api.html) 나뭇 가지에 이미 렌더링 된 페이지가 있으면 이미이 작업을 수행 했어야합니다. –

관련 문제