Prechádzať zdrojové kódy

Move url generation methods to their own interface

Grégoire Paris 7 rokov pred
rodič
commit
7bc58ea9bb
2 zmenil súbory, kde vykonal 83 pridanie a 63 odobranie
  1. 1 63
      Admin/AdminInterface.php
  2. 82 0
      Admin/UrlGeneratorInterface.php

+ 1 - 63
Admin/AdminInterface.php

@@ -16,8 +16,6 @@ use Sonata\AdminBundle\Builder\FormContractorInterface;
 use Sonata\AdminBundle\Builder\ListBuilderInterface;
 use Sonata\AdminBundle\Builder\RouteBuilderInterface;
 use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
-use Sonata\AdminBundle\Route\RouteCollection;
-use Sonata\AdminBundle\Route\RouteGeneratorInterface;
 use Sonata\AdminBundle\Security\Handler\SecurityHandlerInterface;
 use Sonata\AdminBundle\Translator\LabelTranslatorStrategyInterface;
 use Sonata\CoreBundle\Model\Metadata;
@@ -32,7 +30,7 @@ use Symfony\Component\Validator\ValidatorInterface as LegacyValidatorInterface;
 /**
  * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
  */
-interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHookProviderInterface, MenuBuilderInterface, ParentAdminInterface
+interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHookProviderInterface, MenuBuilderInterface, ParentAdminInterface, UrlGeneratorInterface
 {
     /**
      * @param FormContractorInterface $formContractor
@@ -91,11 +89,6 @@ interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHoo
      */
     public function setConfigurationPool(Pool $pool);
 
-    /**
-     * @param RouteGeneratorInterface $routeGenerator
-     */
-    public function setRouteGenerator(RouteGeneratorInterface $routeGenerator);
-
     /**
      * Returns subjectClass/class/subclass name managed
      * - subclass name if subclass parameter is defined
@@ -130,40 +123,6 @@ interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHoo
      */
     public function getBaseControllerName();
 
-    /**
-     * Generates the object url with the given $name.
-     *
-     * @param string $name
-     * @param mixed  $object
-     * @param array  $parameters
-     * @param bool   $absolute
-     *
-     * @return string return a complete url
-     */
-    public function generateObjectUrl($name, $object, array $parameters = array(), $absolute = false);
-
-    /**
-     * Generates a url for the given parameters.
-     *
-     * @param string $name
-     * @param array  $parameters
-     * @param bool   $absolute
-     *
-     * @return string return a complete url
-     */
-    public function generateUrl($name, array $parameters = array(), $absolute = false);
-
-    /**
-     * Generates a url for the given parameters.
-     *
-     * @param string $name
-     * @param array  $parameters
-     * @param bool   $absolute
-     *
-     * @return array return url parts: 'route', 'routeParameters', 'routeAbsolute'
-     */
-    public function generateMenuUrl($name, array $parameters = array(), $absolute = false);
-
     /**
      * @return \Sonata\AdminBundle\Model\ModelManagerInterface
      */
@@ -261,20 +220,6 @@ interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHoo
      */
     public function trans($id, array $parameters = array(), $domain = null, $locale = null);
 
-    /**
-     * Returns the list of available urls.
-     *
-     * @return RouteCollection the list of available urls
-     */
-    public function getRoutes();
-
-    /**
-     * Return the parameter name used to represent the id in the url.
-     *
-     * @return string
-     */
-    public function getRouterIdParameter();
-
     /**
      * Returns the parameter representing request id, ie: id or childId.
      *
@@ -326,13 +271,6 @@ interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHoo
      */
     public function isGranted($name, $object = null);
 
-    /**
-     * @param mixed $entity
-     *
-     * @return string a string representation of the id that is safe to use in a url
-     */
-    public function getUrlsafeIdentifier($entity);
-
     /**
      * @param mixed $entity
      *

+ 82 - 0
Admin/UrlGeneratorInterface.php

@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Sonata Project package.
+ *
+ * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Sonata\AdminBundle\Admin;
+
+use Sonata\AdminBundle\Route\RouteGeneratorInterface;
+
+/**
+ * Contains url generation logic related to an admin.
+ *
+ * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
+ */
+interface UrlGeneratorInterface
+{
+    /**
+     * Returns the list of available urls.
+     *
+     * @return RouteCollection the list of available urls
+     */
+    public function getRoutes();
+
+    /**
+     * Return the parameter name used to represent the id in the url.
+     *
+     * @return string
+     */
+    public function getRouterIdParameter();
+
+    /**
+     * @param RouteGeneratorInterface $routeGenerator
+     */
+    public function setRouteGenerator(RouteGeneratorInterface $routeGenerator);
+
+    /**
+     * Generates the object url with the given $name.
+     *
+     * @param string $name
+     * @param mixed  $object
+     * @param array  $parameters
+     * @param bool   $absolute
+     *
+     * @return string return a complete url
+     */
+    public function generateObjectUrl($name, $object, array $parameters = array(), $absolute = false);
+
+    /**
+     * Generates a url for the given parameters.
+     *
+     * @param string $name
+     * @param array  $parameters
+     * @param bool   $absolute
+     *
+     * @return string return a complete url
+     */
+    public function generateUrl($name, array $parameters = array(), $absolute = false);
+
+    /**
+     * Generates a url for the given parameters.
+     *
+     * @param string $name
+     * @param array  $parameters
+     * @param bool   $absolute
+     *
+     * @return array return url parts: 'route', 'routeParameters', 'routeAbsolute'
+     */
+    public function generateMenuUrl($name, array $parameters = array(), $absolute = false);
+
+    /**
+     * @param mixed $entity
+     *
+     * @return string a string representation of the id that is safe to use in a url
+     */
+    public function getUrlsafeIdentifier($entity);
+}