我正在使用最新版本的silex-skeleton开发一个项目。尝试使用共享方法时显示以下错误:
代码:
$app['login'] = $app->share(function() use($app) {
return new Model\UserModel($app);
});
错误: 尝试呼叫方法"分享"在课堂上#34; Silex \ Application"
此失败的任何建议或可能原因
答案 0 :(得分:24)
Silex 2.0正在使用已删除shared
方法的Pimple 3.0,现在默认情况下共享所有服务,如果您需要新实例,则必须调用factory
方法,如{{1}中所述3}}
因此,如果您想要登录服务,您应该像这样创建它:
<?php
$app['login'] = function($app) {
return new Model\UserModel($app);
};
您可以直接在changelog for version 2.0
上查看3.0 Pimple版本的文档 PS:请记住,在撰写本文时,Silex 2.0处于开发,因此请准备好调整您的代码,直到它获得2.0稳定版本。 it's GitHub repository