/** * Magic function to set given value for given property * * @param $property Given property * @param $value Value for given property * * @return void */ public function __set($property, $value) { if (empty($property) || !is_string($property)) { return; } $checkProperty = $this->em->getRepository('Newscoop\\NewscoopBundle\\Entity\\SystemPreferences')->findOneBy(array('option' => $property)); if ($checkProperty) { $queryBuilder = $this->em->createQueryBuilder(); $preference = $queryBuilder->update('Newscoop\\NewscoopBundle\\Entity\\SystemPreferences', 's')->set('s.value', ':value')->set('s.created_at', ':lastmodified')->where('s.option = :property')->setParameters(array('value' => $value, 'property' => $property, 'lastmodified' => new \DateTime('now')))->getQuery(); $preference->execute(); $this->{$property} = $value; } else { $newProperty = new SystemPreferences(); $newProperty->setOption($property); $newProperty->setValue($value); $newProperty->setCreatedAt(new \DateTime('now')); $this->em->persist($newProperty); $this->em->flush(); } }