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();
}
}