minor #23767 [DI] Generate shorter method names for class-based ids (nicolas-grekas)
This PR was merged into the 3.4 branch.
Discussion
----------
[DI] Generate shorter method names for class-based ids
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
To remove boilerplate.
Commits
-------
5cc1648ba4
[DI] Generate shorter method names for class-based ids
This commit is contained in:
commit
1218c71baf
@ -1633,7 +1633,8 @@ EOF;
|
||||
return $this->serviceIdToMethodNameMap[$id];
|
||||
}
|
||||
|
||||
$name = Container::camelize($id);
|
||||
$i = strrpos($id, '\\');
|
||||
$name = Container::camelize(false !== $i && isset($id[1 + $i]) ? substr($id, 1 + $i) : $id);
|
||||
$name = preg_replace('/[^a-zA-Z0-9_\x7f-\xff]/', '', $name);
|
||||
$methodName = 'get'.$name.'Service';
|
||||
$suffix = 1;
|
||||
|
@ -4,14 +4,9 @@ namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Container33;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
||||
if (!class_exists(Foo::class, false)) {
|
||||
class Foo
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
|
||||
$container->register(Foo::class);
|
||||
$container->register(\Foo\Foo::class);
|
||||
$container->register(\Bar\Foo::class);
|
||||
|
||||
return $container;
|
||||
|
@ -28,10 +28,12 @@ class ProjectServiceContainer extends Container
|
||||
{
|
||||
$this->services = array();
|
||||
$this->normalizedIds = array(
|
||||
'symfony\\component\\dependencyinjection\\tests\\fixtures\\container33\\foo' => 'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\Container33\\Foo',
|
||||
'bar\\foo' => 'Bar\\Foo',
|
||||
'foo\\foo' => 'Foo\\Foo',
|
||||
);
|
||||
$this->methodMap = array(
|
||||
'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\Container33\\Foo' => 'getSymfony_Component_DependencyInjection_Tests_Fixtures_Container33_FooService',
|
||||
'Bar\\Foo' => 'getFooService',
|
||||
'Foo\\Foo' => 'getFoo2Service',
|
||||
);
|
||||
|
||||
$this->aliases = array();
|
||||
@ -64,12 +66,22 @@ class ProjectServiceContainer extends Container
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the public 'Symfony\Component\DependencyInjection\Tests\Fixtures\Container33\Foo' shared service.
|
||||
* Gets the public 'Bar\Foo' shared service.
|
||||
*
|
||||
* @return \Symfony\Component\DependencyInjection\Tests\Fixtures\Container33\Foo
|
||||
* @return \Bar\Foo
|
||||
*/
|
||||
protected function getSymfony_Component_DependencyInjection_Tests_Fixtures_Container33_FooService()
|
||||
protected function getFooService()
|
||||
{
|
||||
return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\Container33\Foo'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\Container33\Foo();
|
||||
return $this->services['Bar\Foo'] = new \Bar\Foo();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the public 'Foo\Foo' shared service.
|
||||
*
|
||||
* @return \Foo\Foo
|
||||
*/
|
||||
protected function getFoo2Service()
|
||||
{
|
||||
return $this->services['Foo\Foo'] = new \Foo\Foo();
|
||||
}
|
||||
}
|
||||
|
@ -32,8 +32,8 @@ class ProjectServiceContainer extends Container
|
||||
'symfony\\component\\dependencyinjection\\tests\\fixtures\\testservicesubscriber' => 'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber',
|
||||
);
|
||||
$this->methodMap = array(
|
||||
'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber' => 'getSymfony_Component_DependencyInjection_Tests_Fixtures_TestServiceSubscriberService',
|
||||
'autowired.Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition' => 'getAutowired_Symfony_Component_DependencyInjection_Tests_Fixtures_CustomDefinitionService',
|
||||
'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber' => 'getTestServiceSubscriberService',
|
||||
'autowired.Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition' => 'getCustomDefinitionService',
|
||||
'foo_service' => 'getFooServiceService',
|
||||
);
|
||||
$this->privates = array(
|
||||
@ -74,7 +74,7 @@ class ProjectServiceContainer extends Container
|
||||
*
|
||||
* @return \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber
|
||||
*/
|
||||
protected function getSymfony_Component_DependencyInjection_Tests_Fixtures_TestServiceSubscriberService()
|
||||
protected function getTestServiceSubscriberService()
|
||||
{
|
||||
return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber();
|
||||
}
|
||||
@ -87,13 +87,13 @@ class ProjectServiceContainer extends Container
|
||||
protected function getFooServiceService()
|
||||
{
|
||||
return $this->services['foo_service'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber(new \Symfony\Component\DependencyInjection\ServiceLocator(array('Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition' => function () {
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : $this->getAutowired_Symfony_Component_DependencyInjection_Tests_Fixtures_CustomDefinitionService()) && false ?: '_'});
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : $this->getCustomDefinitionService()) && false ?: '_'});
|
||||
}, 'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber' => function () {
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] : $this->get('Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber')) && false ?: '_'});
|
||||
}, 'bar' => function () {
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] : $this->get('Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber')) && false ?: '_'});
|
||||
}, 'baz' => function () {
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : $this->getAutowired_Symfony_Component_DependencyInjection_Tests_Fixtures_CustomDefinitionService()) && false ?: '_'});
|
||||
$f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : $this->getCustomDefinitionService()) && false ?: '_'});
|
||||
})));
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ class ProjectServiceContainer extends Container
|
||||
*
|
||||
* @return \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition
|
||||
*/
|
||||
protected function getAutowired_Symfony_Component_DependencyInjection_Tests_Fixtures_CustomDefinitionService()
|
||||
protected function getCustomDefinitionService()
|
||||
{
|
||||
return $this->services['autowired.Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition();
|
||||
}
|
||||
|
Reference in New Issue
Block a user