试图在Silex 2中的类“Silex \ Application”上调用方法“share”

时间:2015-01-27 05:17:34

标签: symfony silex

我正在使用最新版本的silex-skeleton开发一个项目。尝试使用共享方法时显示以下错误:

代码:

$app['login'] = $app->share(function() use($app) {
    return new Model\UserModel($app);
});

错误: 尝试呼叫方法"分享"在课堂上#34; Silex \ Application"

此失败的任何建议或可能原因

1 个答案:

答案 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