/** * Singleton pattern. * * @return ncChangeLogEntryQueue */ public static function getInstance() { if (!self::$_instance instanceof self) { self::$_instance = new self(); } return self::$_instance; }
/** * After an object has been saved, commit the changes to its changelog. * * @param mixed $object * @param PropelPDO $con */ public static function postSave($object, $con) { if (!self::$enabled) { return false; } $entry = ncChangeLogEntryQueue::getInstance()->selectivePop(get_class($object), ncChangeLogEntryOperation::NC_CHANGE_LOG_ENTRY_OPERATION_UPDATE, $object->getPrimaryKey()); if (!$entry) { $entry = ncChangeLogEntryQueue::getInstance()->selectivePop(get_class($object), ncChangeLogEntryOperation::NC_CHANGE_LOG_ENTRY_OPERATION_INSERTION, null, method_exists($object, 'getCreatedAt') ? $object->getCreatedAt(null) : null); } if ($entry) { if ($entry->isOperation(ncChangeLogEntryOperation::NC_CHANGE_LOG_ENTRY_OPERATION_INSERTION)) { $entry->setObjectPk($object->getPrimaryKey()); $changes = array('class' => get_class($object), 'pk' => $object->getPrimaryKey(), 'raw' => array()); $entry->setChangesDetail(base64_encode(serialize($changes))); } $entry->save(); } }