Symfony\Component\DependencyInjection\Reference::isStrict PHP Method

isStrict() public method

Returns true when this Reference is strict
public isStrict ( ) : boolean
return boolean
    public function isStrict()
    {
        return $this->strict;
    }

Usage Example

 protected function validateScope(Reference $reference, Definition $definition = null)
 {
     if (ContainerInterface::SCOPE_PROTOTYPE === $this->currentScope) {
         return;
     }
     if (!$reference->isStrict()) {
         return;
     }
     if (null === $definition) {
         return;
     }
     if ($this->currentScope === ($scope = $definition->getScope())) {
         return;
     }
     $id = (string) $reference;
     if (in_array($scope, $this->currentScopeChildren, true)) {
         throw new \RuntimeException(sprintf('Scope Widening Injection detected: The definition "%s" references the service "%s" which belongs to a narrower scope. ' . 'Generally, it is safer to either move "%s" to scope "%s" or alternatively rely on the provider pattern by injecting the container itself, and requesting the service "%s" each time it is needed. ' . 'In rare, special cases however that might not be necessary, then you can set the reference to strict=false to get rid of this error.', $this->currentId, $id, $this->currentId, $scope, $id));
     }
     if (!in_array($scope, $this->currentScopeAncestors, true)) {
         throw new \RuntimeException(sprintf('Cross-Scope Injection detected: The definition "%s" references the service "%s" which belongs to another scope hierarchy. ' . 'This service might not be available consistently. Generally, it is safer to either move the definition "%s" to scope "%s", or ' . '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.', $this->currentId, $id, $this->currentId, $scope, $this->currentScope, $scope));
     }
 }
All Usage Examples Of Symfony\Component\DependencyInjection\Reference::isStrict