当前位置: 首页>>代码示例>>PHP>>正文


PHP Reference::isStrict方法代码示例

本文整理汇总了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));
     }
 }
开发者ID:faridos,项目名称:ServerGroveLiveChat,代码行数:22,代码来源:CheckReferenceValidityPass.php

示例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);
     }
 }
开发者ID:neteasy-work,项目名称:hkgbf_crm,代码行数:31,代码来源:CheckReferenceValidityPass.php


注:本文中的Symfony\Component\DependencyInjection\Reference::isStrict方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。