minor #19689 [DI] Cleanup array_key_exists (ro0NL)

This PR was squashed before being merged into the 2.7 branch (closes #19689).

Discussion
----------

[DI] Cleanup array_key_exists

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License       | MIT
| Doc PR        | reference to the documentation PR, if any

Investigated this a bit, and to me it looks like left-over code. `null` doesnt end up in `$this->services` by design (this was done in https://github.com/symfony/symfony/pull/8582) so it seems. The test added then for regression still passes :)

I cant believe we guarantee BC for users doing `$this->services['id'] = null` (due protected), allowing them to break the design of `has`, `get` and `initialized` right now.

This also happens for `$this->definitions` in `ContainerBuilder`, maybe because `Container` did it alteady.. but im not sure.

Then again, there's this comment: https://github.com/symfony/symfony/pull/14470#issuecomment-96268162

Commits
-------

3306c70 [DI] Cleanup array_key_exists
This commit is contained in:
Fabien Potencier 2016-08-22 08:32:53 -07:00
commit c89f80a9cd
2 changed files with 5 additions and 6 deletions

View File

@ -223,7 +223,6 @@ class Container implements IntrospectableContainerInterface
if ('service_container' === $id
|| isset($this->aliases[$id])
|| isset($this->services[$id])
|| array_key_exists($id, $this->services)
) {
return true;
}
@ -266,7 +265,7 @@ class Container implements IntrospectableContainerInterface
$id = $this->aliases[$id];
}
// Re-use shared service instance if it exists.
if (isset($this->services[$id]) || array_key_exists($id, $this->services)) {
if (isset($this->services[$id])) {
return $this->services[$id];
}
@ -348,7 +347,7 @@ class Container implements IntrospectableContainerInterface
$id = $this->aliases[$id];
}
return isset($this->services[$id]) || array_key_exists($id, $this->services);
return isset($this->services[$id]);
}
/**

View File

@ -436,7 +436,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
return $service;
}
if (!array_key_exists($id, $this->definitions) && isset($this->aliasDefinitions[$id])) {
if (!isset($this->definitions[$id]) && isset($this->aliasDefinitions[$id])) {
return $this->get($this->aliasDefinitions[$id]);
}
@ -784,7 +784,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
*/
public function hasDefinition($id)
{
return array_key_exists(strtolower($id), $this->definitions);
return isset($this->definitions[strtolower($id)]);
}
/**
@ -800,7 +800,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
{
$id = strtolower($id);
if (!array_key_exists($id, $this->definitions)) {
if (!isset($this->definitions[$id])) {
throw new ServiceNotFoundException($id);
}