Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 483dd13

Browse filesBrowse files
[DI] Cast ids to string, as done on 3.4
1 parent 1dc63f4 commit 483dd13
Copy full SHA for 483dd13

File tree

1 file changed

+19
-5
lines changed
Filter options

1 file changed

+19
-5
lines changed

‎src/Symfony/Component/DependencyInjection/ContainerBuilder.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/DependencyInjection/ContainerBuilder.php
+19-5Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,8 @@ public function getCompiler()
467467
*/
468468
public function set($id, $service)
469469
{
470+
$id = (string) $id;
471+
470472
if ($this->isCompiled() && (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())) {
471473
// setting a synthetic service on a compiled container is alright
472474
throw new BadMethodCallException(sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id));
@@ -484,7 +486,7 @@ public function set($id, $service)
484486
*/
485487
public function removeDefinition($id)
486488
{
487-
if (isset($this->definitions[$id])) {
489+
if (isset($this->definitions[$id = (string) $id])) {
488490
unset($this->definitions[$id]);
489491
$this->removedIds[$id] = true;
490492
}
@@ -499,6 +501,8 @@ public function removeDefinition($id)
499501
*/
500502
public function has($id)
501503
{
504+
$id = (string) $id;
505+
502506
return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || parent::has($id);
503507
}
504508

@@ -519,7 +523,7 @@ public function has($id)
519523
*/
520524
public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE)
521525
{
522-
if ($this->isCompiled() && isset($this->removedIds[$id]) && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) {
526+
if ($this->isCompiled() && isset($this->removedIds[$id = (string) $id]) && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) {
523527
return parent::get($id);
524528
}
525529

@@ -779,6 +783,8 @@ public function setAliases(array $aliases)
779783
*/
780784
public function setAlias($alias, $id)
781785
{
786+
$alias = (string) $alias;
787+
782788
if (is_string($id)) {
783789
$id = new Alias($id);
784790
} elseif (!$id instanceof Alias) {
@@ -801,7 +807,7 @@ public function setAlias($alias, $id)
801807
*/
802808
public function removeAlias($alias)
803809
{
804-
if (isset($this->aliasDefinitions[$alias])) {
810+
if (isset($this->aliasDefinitions[$alias = (string) $alias])) {
805811
unset($this->aliasDefinitions[$alias]);
806812
$this->removedIds[$alias] = true;
807813
}
@@ -816,7 +822,7 @@ public function removeAlias($alias)
816822
*/
817823
public function hasAlias($id)
818824
{
819-
return isset($this->aliasDefinitions[$id]);
825+
return isset($this->aliasDefinitions[$id = (string) $id]);
820826
}
821827

822828
/**
@@ -840,6 +846,8 @@ public function getAliases()
840846
*/
841847
public function getAlias($id)
842848
{
849+
$id = (string) $id;
850+
843851
if (!isset($this->aliasDefinitions[$id])) {
844852
throw new InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $id));
845853
}
@@ -928,6 +936,8 @@ public function setDefinition($id, Definition $definition)
928936
throw new BadMethodCallException('Adding definition to a compiled container is not allowed');
929937
}
930938

939+
$id = (string) $id;
940+
931941
unset($this->aliasDefinitions[$id], $this->removedIds[$id]);
932942

933943
return $this->definitions[$id] = $definition;
@@ -942,7 +952,7 @@ public function setDefinition($id, Definition $definition)
942952
*/
943953
public function hasDefinition($id)
944954
{
945-
return isset($this->definitions[$id]);
955+
return isset($this->definitions[(string) $id]);
946956
}
947957

948958
/**
@@ -956,6 +966,8 @@ public function hasDefinition($id)
956966
*/
957967
public function getDefinition($id)
958968
{
969+
$id = (string) $id;
970+
959971
if (!isset($this->definitions[$id])) {
960972
throw new ServiceNotFoundException($id);
961973
}
@@ -976,6 +988,8 @@ public function getDefinition($id)
976988
*/
977989
public function findDefinition($id)
978990
{
991+
$id = (string) $id;
992+
979993
while (isset($this->aliasDefinitions[$id])) {
980994
$id = (string) $this->aliasDefinitions[$id];
981995
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.