1
0
mirror of synced 2024-12-14 07:06:04 +03:00

Fixes #427, now the AuditLog component should work

This commit is contained in:
zYne 2007-10-08 22:58:53 +00:00
parent 1f1fef741c
commit 8fb82c2f65
2 changed files with 26 additions and 9 deletions

View File

@ -74,13 +74,20 @@ class Doctrine_AuditLog extends Doctrine_Plugin
$name = $table->getComponentName();
$className = $name . 'Version';
// check that class doesn't exist (otherwise we cannot create it)
if (class_exists($className)) {
return false;
}
$columns = $table->getColumns();
// remove all sequential and autoincrement definitions
foreach ($columns as $column => $definition) {
unset($columns[$column]['autoincrement']);
unset($columns[$column]['sequence']);
}
// the version column should be part of the primary key definition
$columns[$this->_options['versionColumn']]['primary'] = true;

View File

@ -44,7 +44,7 @@ class Doctrine_AuditLog_Listener extends Doctrine_Record_Listener
$event->getInvoker()->set($versionColumn, 1);
}
public function preDelete(Doctrine_Event $event)
public function postInsert(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
@ -53,25 +53,35 @@ class Doctrine_AuditLog_Listener extends Doctrine_Record_Listener
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
public function preDelete(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$versionColumn = $this->_auditLog->getOption('versionColumn');
$version = $record->get($versionColumn);
$record->set($versionColumn, ++$version);
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
public function preUpdate(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$version = new $class();
$version->merge($record->toArray());
$version->save();
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$versionColumn = $this->_auditLog->getOption('versionColumn');
$version = $record->get($versionColumn);
$record->set($versionColumn, ++$version);
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
}