2014-05-15 3 views
1

laravel 4의 블레이드를 확장하여 일부 사용자 정의 명령을 갖고 싶기 때문에 대괄호없이 호출하고 싶습니다. 예를 들어 내가 전화를 걸 : 그래서 블레이드 만든Laravel 4 - 확장 블레이드, 브래킷이없는 명령의 문제점

@test 

을 ::과 같이 기능을 확장 :

@test() 

:

Blade::extend(function($view, $compiler) 
{ 
    $pattern = $compiler->createMatcher('test'); 

    return preg_replace($pattern, '$1<?php echo "test"; ?>', $view); 
}); 

그것은 내가 그것을 호출 할 때 잘 작동 하지만 그냥 전화 할 때 실패합니다.

@test 

어떻게 이것을 할 수 있습니까?

답변

2

물건은 preg_replace 패턴과 함께했습니다. BladeCompiler으로 들어가면 더 많은 것을 발견했습니다. createMatcher 방법입니다. 이 경우에 적절한 패턴을 생성

$pattern = $compiler->createPlainMatcher('test'); 

:

막에

$pattern = $compiler->createMatcher('test'); 

을 변경하지 않고 브라켓

@test 

를 호출한다.

관련 문제