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


PHP Route::setRequirement方法代码示例

本文整理汇总了PHP中Symfony\Component\Routing\Route::setRequirement方法的典型用法代码示例。如果您正苦于以下问题:PHP Route::setRequirement方法的具体用法?PHP Route::setRequirement怎么用?PHP Route::setRequirement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\Routing\Route的用法示例。


在下文中一共展示了Route::setRequirement方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: format

 /**
  * Given an array of RAML\Resources, this function will add each Resource
  * into the Symfony Route Collection, and set the corresponding method.
  *
  * @param BasicRoute[Resource] $resources
  *  Associative array where the key is the method and full path, and the value contains
  *  the path, method type (GET/POST etc.) and then the Raml\Method object
  *
  * @return array
  */
 public function format(array $resources)
 {
     // Loop over the Resources
     foreach ($resources as $path => $resource) {
         // This is the path from the RAML, with or without a /.
         $path = $resource->getUri() . ($this->addTrailingSlash ? '/' : '');
         // This is the baseUri + path, the complete URL.
         $url = $resource->getBaseUrl() . $path;
         // Now remove the host away, so we have the FULL path to the resource.
         // baseUri may also contain path that has been omitted for brevity in the
         // RAML creation.
         $host = parse_url($url, PHP_URL_HOST);
         $fullPath = substr($url, strpos($url, $host) + strlen($host));
         // Now build our Route class.
         $route = new Route($fullPath);
         $route->setMethods($resource->getMethod()->getType());
         $route->setSchemes($resource->getProtocols());
         // Loop over each of the URI Parameters searching for validation patterns
         // or default values for parameters.
         foreach ($resource->getUriParameters() as $name => $param) {
             $route->setRequirement($name, $param->getValidationPattern());
             if ($default = $param->getDefault()) {
                 $route->setDefault($name, $default);
             }
         }
         $this->routes->add($resource->getType() . ' ' . $path, $route);
     }
     return $resources;
 }
开发者ID:TheKnarf,项目名称:php-raml-parser,代码行数:39,代码来源:SymfonyRouteFormatter.php

示例2: testAppliesWithFormat

 /**
  * @covers ::applies
  */
 public function testAppliesWithFormat()
 {
     $route_filter = new RequestFormatRouteFilter();
     $route = new Route('/test');
     $route->setRequirement('_format', 'json');
     $this->assertTrue($route_filter->applies($route));
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:10,代码来源:RequestFormatRouteFilterTest.php

示例3: addFormRoute

 protected function addFormRoute(EntityTypeInterface $entity_type)
 {
     $route = new Route('entity.' . $entity_type->id() . '.add-form');
     $route->setDefault('_controller', '\\Drupal\\content_entity_base\\Entity\\Controller\\EntityBaseController::addForm');
     $route->setDefault('_title_callback', '\\Drupal\\content_entity_base\\Entity\\Controller\\EntityBaseController::getAddFormTitle');
     $route->setDefault('entity_type', $entity_type->id());
     $route->setRequirement('_entity_create_access', $entity_type->id());
     return $route;
 }
开发者ID:heddn,项目名称:content_entity_base,代码行数:9,代码来源:CrudUiRouteProvider.php

示例4: revisionDeleteRoute

 protected function revisionDeleteRoute(EntityTypeInterface $entity_type)
 {
     $route = new Route($entity_type->getLinkTemplate('revision-delete'));
     $route->setDefault('_form', 'Drupal\\content_entity_base\\Entity\\Form\\EntityRevisionDeleteForm');
     $route->setDefault('_title', 'Delete earlier revision');
     $route->setRequirement('_entity_access_revision', $entity_type->id() . '.delete');
     $route->setOption('parameters', [$entity_type->id() => ['type' => 'entity:' . $entity_type->id()], $entity_type->id() . '_revision' => ['type' => 'entity_revision:' . $entity_type->id()]]);
     return $route;
 }
开发者ID:heddn,项目名称:content_entity_base,代码行数:9,代码来源:RevisionHtmlRouteProvider.php

示例5: configureRoute

 /**
  * Configures the _controller default parameter and eventually the _method
  * requirement of a given Route instance.
  *
  * @param Route             $route  A route instance
  * @param \ReflectionClass  $class  A ReflectionClass instance
  * @param \ReflectionMethod $method A ReflectionClass method
  * @param mixed             $annot  The annotation class instance
  *
  * @throws \LogicException When the service option is specified on a method
  *
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, $annot)
 {
     $route->setDefault('_controller', $class->getName() . '::' . $method->getName());
     // requirements (@Method)
     foreach ($this->reader->getMethodAnnotations($method) as $configuration) {
         if ($configuration instanceof Method) {
             $route->setRequirement('_method', implode('|', $configuration->getMethods()));
         }
     }
 }
开发者ID:dantudor,项目名称:silex,代码行数:23,代码来源:AnnotatedRouteControllerLoader.php

示例6: deleteMultipleFormRoute

 /**
  * Returns the delete multiple form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function deleteMultipleFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('delete-multiple-form')) {
         $route = new Route($entity_type->getLinkTemplate('delete-multiple-form'));
         $route->setDefault('_form', '\\Drupal\\entity\\Form\\DeleteMultiple');
         $route->setDefault('entity_type_id', $entity_type->id());
         $route->setRequirement('_permission', $entity_type->getAdminPermission());
         return $route;
     }
 }
开发者ID:CIGIHub,项目名称:bsia-drupal8,代码行数:19,代码来源:DeleteMultipleRouteProvider.php

示例7: access

 /**
  * {@inheritdoc}
  */
 public function access(Route $route, RouteMatchInterface $route_match, AccountInterface $account)
 {
     // Backup the original requirements.
     $original_requirements = $route->getRequirements();
     // Replace it with our entity access value and run the parent access check.
     $route->setRequirement('_entity_access', $route->getRequirement('_page_access'));
     $access = parent::access($route, $route_match, $account);
     // Restore the original requirements.
     $route->setRequirements($original_requirements);
     return $access;
 }
开发者ID:nB-MDSO,项目名称:mdso-d8blog,代码行数:14,代码来源:PageAccessCheck.php

示例8: addFormRoute

 /**
  * Returns the add form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function addFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('add-form')) {
         $route = new Route($entity_type->getLinkTemplate('add-form'));
         $route->setDefault('_controller', '\\Drupal\\entity\\Controller\\EntityCreateController::addForm');
         $route->setDefault('_title_callback', '\\Drupal\\entity\\Controller\\EntityCreateController::addFormTitle');
         $route->setDefault('entity_type_id', $entity_type->id());
         $route->setRequirement('_entity_create_access', $entity_type->id());
         return $route;
     }
 }
开发者ID:darrylri,项目名称:protovbmwmo,代码行数:20,代码来源:CreateHtmlRouteProvider.php

示例9: testGenerateByRoute

 /**
  * Tests the generate method with passing in a route object into generate().
  *
  * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
  */
 public function testGenerateByRoute()
 {
     $this->generator = new ProviderBasedGenerator($this->provider);
     // Setup a route with a numeric parameter, but pass in a string, so it
     // fails and getRouteDebugMessage should be triggered.
     $route = new Route('/test');
     $route->setPath('/test/{number}');
     $route->setRequirement('number', '\\+d');
     $this->generator->setStrictRequirements(true);
     $context = new RequestContext();
     $this->generator->setContext($context);
     $this->assertSame(null, $this->generator->generate($route, array('number' => 'string')));
 }
开发者ID:saberyounis,项目名称:Sonata-Project,代码行数:18,代码来源:ProviderBasedGeneratorTest.php

示例10: getLatestVersionRoute

 /**
  * Gets the moderation-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getLatestVersionRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('latest-version') && $entity_type->hasViewBuilderClass()) {
         $entity_type_id = $entity_type->id();
         $route = new Route($entity_type->getLinkTemplate('latest-version'));
         $route->addDefaults(['_entity_view' => "{$entity_type_id}.full", '_title_callback' => '\\Drupal\\Core\\Entity\\Controller\\EntityController::title'])->setRequirement('_entity_access', "{$entity_type_id}.view")->setRequirement('_permission', 'view latest version,view any unpublished content')->setRequirement('_content_moderation_latest_version', 'TRUE')->setOption('_content_moderation_entity_type', $entity_type_id)->setOption('parameters', [$entity_type_id => ['type' => 'entity:' . $entity_type_id, 'load_forward_revision' => 1]]);
         // Entity types with serial IDs can specify this in their route
         // requirements, improving the matching process.
         if ($this->getEntityTypeIdKeyType($entity_type) === 'integer') {
             $route->setRequirement($entity_type_id, '\\d+');
         }
         return $route;
     }
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:23,代码来源:EntityModerationRouteProvider.php

示例11: configureRoute

 /**
  * Configures the _controller default parameter and eventually the _method
  * requirement of a given Route instance.
  *
  * @param Route            $route  A Route instance
  * @param ReflectionClass  $class  A ReflectionClass instance
  * @param ReflectionMethod $method A ReflectionClass method
  */
 protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, $annot)
 {
     // controller
     $classAnnot = $this->reader->getClassAnnotation($class, $this->routeAnnotationClass);
     if ($classAnnot instanceof FrameworkExtraBundleRoute && ($service = $classAnnot->getService())) {
         $route->setDefault('_controller', $service . ':' . $method->getName());
     } else {
         $route->setDefault('_controller', $class->getName() . '::' . $method->getName());
     }
     // requirements (@Method)
     foreach ($this->reader->getMethodAnnotations($method) as $configuration) {
         if ($configuration instanceof Method) {
             $route->setRequirement('_method', implode('|', $configuration->getMethods()));
         }
     }
 }
开发者ID:joan16v,项目名称:symfony2_test,代码行数:24,代码来源:AnnotatedRouteControllerLoader.php

示例12: providerTestGetAddPageRoute

 public function providerTestGetAddPageRoute()
 {
     $data = [];
     $entity_type1 = $this->getEntityType();
     $entity_type1->hasLinkTemplate('add-page')->willReturn(FALSE);
     $data['no_add_page_link_template'] = [NULL, $entity_type1->reveal()];
     $entity_type2 = $this->getEntityType();
     $entity_type2->hasLinkTemplate('add-page')->willReturn(TRUE);
     $entity_type2->getKey('bundle')->willReturn(NULL);
     $data['no_bundle'] = [NULL, $entity_type2->reveal()];
     $entity_type3 = $this->getEntityType();
     $entity_type3->hasLinkTemplate('add-page')->willReturn(TRUE);
     $entity_type3->getLinkTemplate('add-page')->willReturn('/the/add/page/link/template');
     $entity_type3->id()->willReturn('the_entity_type_id');
     $entity_type3->getKey('bundle')->willReturn('type');
     $route = new Route('/the/add/page/link/template');
     $route->setDefaults(['_controller' => 'Drupal\\Core\\Entity\\Controller\\EntityController::addPage', '_title_callback' => 'Drupal\\Core\\Entity\\Controller\\EntityController::addTitle', 'entity_type_id' => 'the_entity_type_id']);
     $route->setRequirement('_entity_create_any_access', 'the_entity_type_id');
     $data['add_page'] = [clone $route, $entity_type3->reveal()];
     return $data;
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:21,代码来源:DefaultHtmlRouteProviderTest.php

示例13: testCreateAccess

 /**
  * Tests the create access method.
  *
  * @covers ::access
  */
 public function testCreateAccess()
 {
     // Set the mock translation handler.
     $translation_handler = $this->getMock('\\Drupal\\content_translation\\ContentTranslationHandlerInterface');
     $translation_handler->expects($this->once())->method('getTranslationAccess')->will($this->returnValue(AccessResult::allowed()));
     $entity_manager = $this->getMock('Drupal\\Core\\Entity\\EntityManagerInterface');
     $entity_manager->expects($this->once())->method('getHandler')->withAnyParameters()->will($this->returnValue($translation_handler));
     // Set our source and target languages.
     $source = 'en';
     $target = 'it';
     // Set the mock language manager.
     $language_manager = $this->getMock('Drupal\\Core\\Language\\LanguageManagerInterface');
     $language_manager->expects($this->at(0))->method('getLanguage')->with($this->equalTo($source))->will($this->returnValue(new Language(array('id' => 'en'))));
     $language_manager->expects($this->at(1))->method('getLanguages')->will($this->returnValue(array('en' => array(), 'it' => array())));
     $language_manager->expects($this->at(2))->method('getLanguage')->with($this->equalTo($source))->will($this->returnValue(new Language(array('id' => 'en'))));
     $language_manager->expects($this->at(3))->method('getLanguage')->with($this->equalTo($target))->will($this->returnValue(new Language(array('id' => 'it'))));
     // Set the mock entity. We need to use ContentEntityBase for mocking due to
     // issues with phpunit and multiple interfaces.
     $entity = $this->getMockBuilder('Drupal\\Core\\Entity\\ContentEntityBase')->disableOriginalConstructor()->getMock();
     $entity->expects($this->once())->method('getEntityTypeId');
     $entity->expects($this->once())->method('getTranslationLanguages')->with()->will($this->returnValue(array()));
     $entity->expects($this->once())->method('getCacheContexts')->willReturn([]);
     $entity->expects($this->once())->method('getCacheMaxAge')->willReturn(Cache::PERMANENT);
     $entity->expects($this->once())->method('getCacheTags')->will($this->returnValue(array('node:1337')));
     $entity->expects($this->once())->method('getCacheContexts')->willReturn(array());
     // Set the route requirements.
     $route = new Route('test_route');
     $route->setRequirement('_access_content_translation_manage', 'create');
     // Set up the route match.
     $route_match = $this->getMock('Drupal\\Core\\Routing\\RouteMatchInterface');
     $route_match->expects($this->once())->method('getParameter')->with('node')->will($this->returnValue($entity));
     // Set the mock account.
     $account = $this->getMock('Drupal\\Core\\Session\\AccountInterface');
     // The access check under test.
     $check = new ContentTranslationManageAccessCheck($entity_manager, $language_manager);
     // The request params.
     $language = 'en';
     $entity_type_id = 'node';
     $this->assertTrue($check->access($route, $route_match, $account, $source, $target, $language, $entity_type_id)->isAllowed(), "The access check matches");
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:45,代码来源:ContentTranslationManageAccessCheckTest.php

示例14: processRoute

 /**
  * {@inheritdoc}
  */
 public function processRoute(Route $route)
 {
     $route->setRequirement('_user_is_logged_in', 'TRUE');
 }
开发者ID:Jbartsch,项目名称:travelbruh-api,代码行数:7,代码来源:UserLogout.php

示例15: destroyRoute

 /**
  * @param array $options
  *
  * @return Route
  */
 protected function destroyRoute(array $options)
 {
     $route = new Route('/{id}/destroy');
     $route->setMethods(['GET', 'POST']);
     $route->setDefault('_controller', $options['controller'] . ':destroy');
     $route->setRequirement('id', '\\d+');
     return $route;
 }
开发者ID:mikoweb,项目名称:vsymfo-core-bundle,代码行数:13,代码来源:CrudLoader.php


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