本文整理汇总了PHP中Symfony\Component\DependencyInjection\Reference::isStrict方法的典型用法代码示例。如果您正苦于以下问题:PHP Reference::isStrict方法的具体用法?PHP Reference::isStrict怎么用?PHP Reference::isStrict使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\DependencyInjection\Reference
的用法示例。
在下文中一共展示了Reference::isStrict方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validateScope
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));
}
}
示例2: validateScope
/**
* Validates the scope of a single Reference.
*
* @param Reference $reference
* @param Definition $definition
*
* @throws ScopeWideningInjectionException when the definition references a service of a narrower scope
* @throws ScopeCrossingInjectionException when the definition references a service of another scope hierarchy
*/
private 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 ScopeWideningInjectionException($this->currentId, $this->currentScope, $id, $scope);
}
if (!in_array($scope, $this->currentScopeAncestors, true)) {
throw new ScopeCrossingInjectionException($this->currentId, $this->currentScope, $id, $scope);
}
}