示例#1
0
 /**
  * Make sure all object references are cloned.
  *
  */
 public function postClone()
 {
     // Images / resources
     if (is_object($this->bannerImage)) {
         // Clone does not work for this kind of reference.
         // Manual copy mode engaged.
         $this->bannerImage = $this->bannerImage->copy();
     }
     // Tags.
     $tempTags = new ArrayCollection();
     foreach ($this->tags as $tag) {
         $tempTags->add($tag);
     }
     $this->tags = $tempTags;
     // Knowledge Prerequisites.
     $tempKnowledgePrerequisites = new ArrayCollection();
     foreach ($this->knowledgePrerequisites as $knowledgePrerequisite) {
         $newKnowledgePrerequisite = clone $knowledgePrerequisite;
         $newKnowledgePrerequisite->setQuiz($this);
         $tempKnowledgePrerequisites->add($knowledgePrerequisite);
     }
     $this->knowledgePrerequisites = $tempKnowledgePrerequisites;
     $tempExercises = new ArrayCollection();
     foreach ($this->exercises as $exercise) {
         $newExercise = clone $exercise;
         $newExercise->postClone();
         $newExercise->setQuiz($this);
         $tempExercises->add($newExercise);
     }
     $this->exercises = $tempExercises;
     $tempSubjects = new ArrayCollection();
     foreach ($this->subjects as $subject) {
         $tempSubjects->add($subject);
     }
     $this->subjects = $tempSubjects;
     $tempLevels = new ArrayCollection();
     foreach ($this->levels as $level) {
         $tempLevels->add($level);
     }
     $this->levels = $tempLevels;
 }
 /**
  * Implementation of clone magic method.
  */
 public function postClone()
 {
     if (!is_null($this->image)) {
         $this->image = $this->image->copy();
     }
 }
示例#3
0
 /**
  * Implementation of custom clone method since
  * native php __clone raises error in Flow.
  * Override in exercises which have additional references to objects.
  */
 public function postClone()
 {
     if (is_object($this->image)) {
         $this->image = $this->image->copy();
     }
     if (is_object($this->pdfFile)) {
         $this->pdfFile = $this->pdfFile->copy();
     }
     if (is_object($this->soundFile)) {
         $this->soundFile = $this->soundFile->copy();
     }
 }