Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2157

@HasLifecycleCallbacks does not fire events when set on @MappedSuperclass

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Invalid
    • Affects Version/s: 2.2.3
    • Fix Version/s: None
    • Component/s: ORM
    • Security Level: All
    • Environment:
      Windows 7 x64 / Apache 2.4.2 / MySQL server 5.1.62

      Description

      I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass... (neither PreUpdate, PostUpdate,PrePersist, PostPersist and others)

      I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

      It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

      Is this a bug ..?

      To reproduce :

      <?php
      namespace MyProject\Entity;
      
      use Doctrine\ORM\Mapping as ORM;
      
      /**
       * @ORM\MappedSuperclass
       * @ORM\HasLifecycleCallbacks
       */
      class MyMappedTask
      {
         /**
          * @ORM\PreRemove
          * @ORM\PostRemove
          * @ORM\PreUpdate
          * @ORM\PostUpdate
           */
          public function onPostRemove()
          {
              echo "here is never reached !";
          }
      }
      
      /**
       * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
       * @ORM\Table()
       */
      class MyTask extends MyMappedTask
      {
      
      }
      

        Activity

        Frederic created issue -
        Frederic made changes -
        Field Original Value New Value
        Labels HasLifecycleCallbacks MappedSuperclass
        Fabio B. Silva made changes -
        Description I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass...

        I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

        It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

        Is this a bug ..?

        To reproduce :

        <?php
        namespace MyProject\Entity;

        use Doctrine\ORM\Mapping as ORM;

        /**
         * @ORM\MappedSuperclass
         * @ORM\HasLifecycleCallbacks
         */
        class MyMappedTask
        {
        /**
             * @ORM\PostRemove
             */
            public function onPostRemove()
            {
                echo "in onPostRemove";
            }
        }

        /**
         * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
         * @ORM\Table()
         */
        class MyTask extends MyMappedTask
        {

        }
        I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass...

        I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

        It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

        Is this a bug ..?

        To reproduce :

        {code}
        <?php
        namespace MyProject\Entity;

        use Doctrine\ORM\Mapping as ORM;

        /**
         * @ORM\MappedSuperclass
         * @ORM\HasLifecycleCallbacks
         */
        class MyMappedTask
        {
        /**
             * @ORM\PostRemove
             */
            public function onPostRemove()
            {
                echo "in onPostRemove";
            }
        }

        /**
         * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
         * @ORM\Table()
         */
        class MyTask extends MyMappedTask
        {

        }
        {code}
        Frederic made changes -
        Description I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass...

        I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

        It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

        Is this a bug ..?

        To reproduce :

        {code}
        <?php
        namespace MyProject\Entity;

        use Doctrine\ORM\Mapping as ORM;

        /**
         * @ORM\MappedSuperclass
         * @ORM\HasLifecycleCallbacks
         */
        class MyMappedTask
        {
        /**
             * @ORM\PostRemove
             */
            public function onPostRemove()
            {
                echo "in onPostRemove";
            }
        }

        /**
         * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
         * @ORM\Table()
         */
        class MyTask extends MyMappedTask
        {

        }
        {code}
        I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass... (neither PreUpdate, PostUpdate,PrePersist, PostPersist and others)

        I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

        It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

        Is this a bug ..?

        To reproduce :

        {code}
        <?php
        namespace MyProject\Entity;

        use Doctrine\ORM\Mapping as ORM;

        /**
         * @ORM\MappedSuperclass
         * @ORM\HasLifecycleCallbacks
         */
        class MyMappedTask
        {
           /**
            * @ORM\PreRemove
            * @ORM\PostRemove
            * @ORM\PreUpdate
            * @ORM\PostUpdate
             */
            public function onPostRemove()
            {
                echo "here is never reached !";
            }
        }

        /**
         * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
         * @ORM\Table()
         */
        class MyTask extends MyMappedTask
        {

        }
        {code}
        Fabio B. Silva made changes -
        Attachment DDC2157Test.php [ 11354 ]
        Fabio B. Silva made changes -
        Status Open [ 1 ] Awaiting Feedback [ 10000 ]
        Benjamin Eberlei made changes -
        Status Awaiting Feedback [ 10000 ] In Progress [ 3 ]
        Benjamin Eberlei made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Invalid [ 6 ]

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Frederic
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: