从 Silex 迁移到 Symfony

Migrating from Silex to Symfony

我正在将一些 Silex 代码迁移到 Symfony 项目中。我想知道 Symfony 的等效项是什么,用于注册像这样的 Pimple 服务:

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

也欢迎任何其他指点。

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

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

根据 的回答 share 已在新版本的 Silex 中删除。 share 似乎等同于您将在 symfony 文档中阅读的常规服务定义。

我从来没有在 Symfony 中使用过 protect 之类的东西,我想你可以声明一个 class 并为你的函数使用 __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);