2014-05-15 1 views
1

Я хочу расширить лезвие в laravel 4, чтобы иметь некоторые пользовательские команды, и я хочу назвать их без скобок. Например, я хочу, чтобы позвонить:Laravel 4 - расширяющееся лезвие, проблемы с командой без скобок

@test 

Так я создал Клинок :: расширить функции следующим образом:

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

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

Он отлично работает, когда я называю его:

@test() 

Но не удается, когда я называю это просто:

@test 

Как я могу это достичь?

ответ

2

Дело было в шаблоне preg_replace. Дайвинг в BladeCompiler Я узнал, что у него есть еще один метод createMatcher.

Для вызова

@test 

без скобок, просто изменить

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

к:

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

который создает правильную модель в этом случае.

 Смежные вопросы

  • Нет связанных вопросов^_^