vendor/symfony/src/Symfony/Component/DependencyInjection/Exception/ScopeCrossingInjectionException.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 
       
     3 /*
       
     4  * This file is part of the Symfony framework.
       
     5  *
       
     6  * (c) Fabien Potencier <fabien@symfony.com>
       
     7  *
       
     8  * This source file is subject to the MIT license that is bundled
       
     9  * with this source code in the file LICENSE.
       
    10  */
       
    11 
       
    12 namespace Symfony\Component\DependencyInjection\Exception;
       
    13 
       
    14 /**
       
    15  * This exception is thrown when the a scope crossing injection is detected.
       
    16  *
       
    17  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
       
    18  */
       
    19 class ScopeCrossingInjectionException extends RuntimeException
       
    20 {
       
    21     private $sourceServiceId;
       
    22     private $sourceScope;
       
    23     private $destServiceId;
       
    24     private $destScope;
       
    25 
       
    26     public function __construct($sourceServiceId, $sourceScope, $destServiceId, $destScope)
       
    27     {
       
    28         parent::__construct(sprintf(
       
    29             'Scope Crossing Injection detected: The definition "%s" references the service "%s" which belongs to another scope hierarchy. '
       
    30            .'This service might not be available consistently. Generally, it is safer to either move the definition "%s" to scope "%s", or '
       
    31            .'declare "%s" as a child scope of "%s". If you can be sure that the other scope is always active, you can set the reference to strict=false to get rid of this error.',
       
    32            $sourceServiceId,
       
    33            $destServiceId,
       
    34            $sourceServiceId,
       
    35            $destScope,
       
    36            $sourceScope,
       
    37            $destScope
       
    38         ));
       
    39 
       
    40         $this->sourceServiceId = $sourceServiceId;
       
    41         $this->sourceScope = $sourceScope;
       
    42         $this->destServiceId = $destServiceId;
       
    43         $this->destScope = $destScope;
       
    44     }
       
    45 
       
    46     public function getSourceServiceId()
       
    47     {
       
    48         return $this->sourceServiceId;
       
    49     }
       
    50 
       
    51     public function getSourceScope()
       
    52     {
       
    53         return $this->sourceScope;
       
    54     }
       
    55 
       
    56     public function getDestServiceId()
       
    57     {
       
    58         return $this->destServiceId;
       
    59     }
       
    60 
       
    61     public function getDestScope()
       
    62     {
       
    63         return $this->destScope;
       
    64     }
       
    65 }