Skip to content

Commit

Permalink
[2.3] [DI] Improve the generated PHPDoc of the dumped PHP container
Browse files Browse the repository at this point in the history
  • Loading branch information
vicb authored and fabpot committed Mar 6, 2013
1 parent 8a351f0 commit 9024c07
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
26 changes: 18 additions & 8 deletions src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
Expand Up @@ -441,19 +441,30 @@ private function addService($id, $definition)
$this->referenceVariables = array();
$this->variableCount = 0;

$return = '';
$return = array();

if ($definition->isSynthetic()) {
$return = sprintf('@throws RuntimeException always since this service is expected to be injected dynamically');
$return[] = '@throws RuntimeException always since this service is expected to be injected dynamically';
} elseif ($class = $definition->getClass()) {
$return = sprintf("@return %s A %s instance.", 0 === strpos($class, '%') ? 'Object' : $class, $class);
$return[] = sprintf("@return %s A %s instance.", 0 === strpos($class, '%') ? 'object' : $class, $class);
} elseif ($definition->getFactoryClass()) {
$return = sprintf('@return Object An instance returned by %s::%s().', $definition->getFactoryClass(), $definition->getFactoryMethod());
$return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryClass(), $definition->getFactoryMethod());
} elseif ($definition->getFactoryService()) {
$return = sprintf('@return Object An instance returned by %s::%s().', $definition->getFactoryService(), $definition->getFactoryMethod());
$return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryService(), $definition->getFactoryMethod());
}

$scope = $definition->getScope();
if (!in_array($scope, array(ContainerInterface::SCOPE_CONTAINER, ContainerInterface::SCOPE_PROTOTYPE))) {
if ($return && 0 === strpos($return[count($return) - 1], '@return')) {
$return[] = '';
}
$return[] = sprintf("@throws InactiveScopeException when the '%s' service is requested while the '%s' scope is not active", $id, $scope);
}

$return = implode("\n * ", $return);

$doc = '';
if (ContainerInterface::SCOPE_PROTOTYPE !== $definition->getScope()) {
if (ContainerInterface::SCOPE_PROTOTYPE !== $scope) {
$doc .= <<<EOF
*
Expand Down Expand Up @@ -484,8 +495,7 @@ protected function get{$name}Service()
EOF;

$scope = $definition->getScope();
if (ContainerInterface::SCOPE_CONTAINER !== $scope && ContainerInterface::SCOPE_PROTOTYPE !== $scope) {
if (!in_array($scope, array(ContainerInterface::SCOPE_CONTAINER, ContainerInterface::SCOPE_PROTOTYPE))) {
$code .= <<<EOF
if (!isset(\$this->scopedServices['$scope'])) {
throw new InactiveScopeException('$id', '$scope');
Expand Down
Expand Up @@ -102,7 +102,7 @@ protected function getFooService()
* This service is shared.
* This method always returns the same instance of the service.
*
* @return Object A %baz_class% instance.
* @return object A %baz_class% instance.
*/
protected function getFoo_BazService()
{
Expand All @@ -116,7 +116,7 @@ protected function getFoo_BazService()
/**
* Gets the 'foo_bar' service.
*
* @return Object A %foo_class% instance.
* @return object A %foo_class% instance.
*/
protected function getFooBarService()
{
Expand Down

0 comments on commit 9024c07

Please sign in to comment.