merged branch fabpot/bundle-leaks (PR #8947)

This PR was merged into the master branch.

Discussion
----------

[HttpKernel] fixes some memory leaks

| Q             | A
| ------------- | ---
| Bug fix?      | kinda
| New feature?  | no
| BC breaks?    | kinda as the Bundle `$reflected` property was removed
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

6307f41 [HttpKernel] removed a circular reference that prevents PHP GC to do its job
49fe3c7 [HttpKernel] removed the need to use reflection to get a bundle namespace
This commit is contained in:
Fabien Potencier 2013-09-06 20:17:41 +02:00
commit 20fadcdbaf
1 changed files with 7 additions and 8 deletions

View File

@ -29,8 +29,8 @@ use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
abstract class Bundle extends ContainerAware implements BundleInterface
{
protected $name;
protected $reflected;
protected $extension;
protected $path;
/**
* Boots the Bundle.
@ -109,11 +109,9 @@ abstract class Bundle extends ContainerAware implements BundleInterface
*/
public function getNamespace()
{
if (null === $this->reflected) {
$this->reflected = new \ReflectionObject($this);
}
$class = get_class($this);
return $this->reflected->getNamespaceName();
return substr($class, 0, strrpos($class, '\\'));
}
/**
@ -125,11 +123,12 @@ abstract class Bundle extends ContainerAware implements BundleInterface
*/
public function getPath()
{
if (null === $this->reflected) {
$this->reflected = new \ReflectionObject($this);
if (null === $this->path) {
$reflected = new \ReflectionObject($this);
$this->path = dirname($reflected->getFileName());
}
return dirname($this->reflected->getFileName());
return $this->path;
}
/**