从 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);
我正在将一些 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);