2014-02-05 5 views
1

Я создал признак и попытался его использовать, но я столкнулся с ошибкой, что объект приложения не имеет метода.Silex/Symfony создает черты

Call to undefined method Silex\Application::phrase()

Попытка использовать

use \Language\LanguageTrait 
$app->phrase() 

И это язык черта.

namespace Language; 

use Silex\Application; 

trait LanguageTrait 
    { 
     public function phrase ($phrase, $replacements = array()) 
     { 
      $language = $this['language']; 

      return $language->phrase($phrase, $replacements); 
     } 
    } 

Я попытался с другими встроенными в черт, как URLServiceProvider черта, но я получаю ту же ошибку, поэтому я предполагаю, что я использую это неправильно.

ответ

5

Похоже, вы используете класс Silex \ Application по умолчанию. В документации не ясно, что вам нужно создать собственное приложение, которое расширяет значение по умолчанию, а затем инициализирует это. Например:

class CustomApplication extends Silex\Application { 
    use YourTrait; 
} 
$app = new CustomApplication(); 

Надеюсь, что это поможет. Дополнительную информацию о признаках можно найти по адресу: http://silex.sensiolabs.org/doc/usage.html#traits

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