试图在 Silex 2 中的 class "Silex\Application" 上调用方法 "share"
Attempted to call method "share" on class "Silex\Application" in Silex 2
我正在用最新版本的 silex-skeleton 开发一个项目。尝试使用共享方法时显示以下错误:
代码:
$app['login'] = $app->share(function() use($app) {
return new Model\UserModel($app);
});
错误:
试图在 class "Silex\Application"
上调用方法 "share"
此失败的任何建议或可能原因
Silex 2.0 使用的 Pimple 3.0 移除了 shared
方法,现在默认共享所有服务,如果您想要一个新实例,您必须调用 factory
方法,如changelog for version 2.0.
所以如果你想要一个 login 服务,你应该像这样创建它:
<?php
$app['login'] = function($app) {
return new Model\UserModel($app);
};
您可以直接在 it's GitHub repository
上查看 3.0 Pimple 版本的文档
PS:请记住,在撰写本文时,Silex 2.0 正处于 开发阶段 ,因此请准备好适应您的代码,直到它获得 2.0 稳定版本。 2.0 has reached prod status as of 2016-05-18
我正在用最新版本的 silex-skeleton 开发一个项目。尝试使用共享方法时显示以下错误:
代码:
$app['login'] = $app->share(function() use($app) {
return new Model\UserModel($app);
});
错误: 试图在 class "Silex\Application"
上调用方法 "share"此失败的任何建议或可能原因
Silex 2.0 使用的 Pimple 3.0 移除了 shared
方法,现在默认共享所有服务,如果您想要一个新实例,您必须调用 factory
方法,如changelog for version 2.0.
所以如果你想要一个 login 服务,你应该像这样创建它:
<?php
$app['login'] = function($app) {
return new Model\UserModel($app);
};
您可以直接在 it's GitHub repository
上查看 3.0 Pimple 版本的文档PS:请记住,在撰写本文时,Silex 2.0 正处于 开发阶段 ,因此请准备好适应您的代码,直到它获得 2.0 稳定版本。 2.0 has reached prod status as of 2016-05-18