Silex / Symfony创造特征

时间:2014-02-05 17:21:02

标签: symfony traits silex

我创建了一个特性并尝试使用它,但是我遇到了应用程序对象没有该方法的错误。

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特性,但我得到了同样的错误,所以我假设我使用它错了。

1 个答案:

答案 0 :(得分:5)

听起来您正在使用默认的Silex \ Application类。文档不清楚您必须实际创建扩展默认值然后初始化的自定义应用程序。例如:

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

希望这会有所帮助。您可以在http://silex.sensiolabs.org/doc/usage.html#traits

找到有关特征的更多信息