从Silex迁移到Symfony

时间:2016-06-17 08:51:13

标签: php symfony silex

我正在将一些Silex代码迁移到Symfony项目..我想知道Symfony等同于注册像这样的Pimple服务:

$app['service.test1'] = $app->protect(...)
$app['service.test2'] = $app->share(...)

任何其他指针也受到赞赏。

2 个答案:

答案 0 :(得分:1)

我会查看服务容器上的docs,以便对服务有一个基本的了解。

根据this,在新版本的Silex中删除了shareshare似乎等同于您将在symfony文档中阅读的常规服务定义。

我从来没有在Symfony中使用protect之类的东西,我想你可以用你的函数声明一个类并使用__invoke方法。

class Adder
{
  public function __invoke($a, $b) {
    return $a + $b;
  }
}

然后在YourBundle/Resources/config/services.yml

services:
  adder:
    class: MyNamespace\Adder

你可以像这样使用它:

$adder = $this->container->get('adder');
$result = $adder(1,2);

答案 1 :(得分:-1)

使用Service Container注册您的服务。 Symfony不使用Pimple。