Browse Source

Extract hooks into their own interface

Grégoire Paris 8 years ago
parent
commit
e8a26455b1
2 changed files with 77 additions and 56 deletions
  1. 1 56
      Admin/AdminInterface.php
  2. 76 0
      Admin/LifecycleHookProviderInterface.php

+ 1 - 56
Admin/AdminInterface.php

@@ -34,7 +34,7 @@ use Symfony\Component\Validator\ValidatorInterface as LegacyValidatorInterface;
 /**
 /**
  * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
  * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
  */
  */
-interface AdminInterface extends FieldDescriptionRegistryInterface
+interface AdminInterface extends FieldDescriptionRegistryInterface, LifecycleHookProviderInterface
 {
 {
     /**
     /**
      * @param FormContractorInterface $formContractor
      * @param FormContractorInterface $formContractor
@@ -551,61 +551,6 @@ interface AdminInterface extends FieldDescriptionRegistryInterface
 
 
     public function configure();
     public function configure();
 
 
-    /**
-     * @param mixed $object
-     *
-     * @return mixed
-     */
-    public function update($object);
-
-    /**
-     * @param mixed $object
-     *
-     * @return mixed
-     */
-    public function create($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function delete($object);
-
-    //TODO: uncomment this method for 4.0
-    //    /**
-    //     * @param mixed $object
-    //     */
-    //    public function preValidate($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function preUpdate($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function postUpdate($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function prePersist($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function postPersist($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function preRemove($object);
-
-    /**
-     * @param mixed $object
-     */
-    public function postRemove($object);
-
     /**
     /**
      * Call before the batch action, allow you to alter the query and the idx.
      * Call before the batch action, allow you to alter the query and the idx.
      *
      *

+ 76 - 0
Admin/LifecycleHookProviderInterface.php

@@ -0,0 +1,76 @@
+<?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;
+
+/**
+ * This interface can be implemented to provide hooks that will be called
+ * during the lifecycle of the object.
+ *
+ * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
+ */
+interface LifecycleHookProviderInterface
+{
+    /**
+     * @param object $object
+     *
+     * @return object
+     */
+    public function update($object);
+
+    /**
+     * @param object $object
+     *
+     * @return object
+     */
+    public function create($object);
+
+    /**
+     * @param object $object
+     */
+    public function delete($object);
+
+//NEXT_MAJOR: uncomment this method for 4.0
+//    /**
+//     * @param object $object
+//     */
+//    public function preValidate($object);
+
+    /**
+     * @param object $object
+     */
+    public function preUpdate($object);
+
+    /**
+     * @param object $object
+     */
+    public function postUpdate($object);
+
+    /**
+     * @param object $object
+     */
+    public function prePersist($object);
+
+    /**
+     * @param object $object
+     */
+    public function postPersist($object);
+
+    /**
+     * @param object $object
+     */
+    public function preRemove($object);
+
+    /**
+     * @param object $object
+     */
+    public function postRemove($object);
+}