Doctrine 1.2.4
Doctrine_AuditLog_Listener_Microtime Class Reference

Inherits Doctrine_AuditLog_Listener.

Public Member Functions

 __construct (Doctrine_AuditLog $auditLog)
 
 getOption ($name)
 
 getOptions ()
 
 postInsert (Doctrine_Event $event)
 
 preDelete (Doctrine_Event $event)
 
 preInsert (Doctrine_Event $event)
 
 preUpdate (Doctrine_Event $event)
 
 setOption ($name, $value=null)
 

Protected Member Functions

 _getInitialVersion (Doctrine_Record $record)
 
 _getNextVersion (Doctrine_Record $record)
 
 _microtime ()
 

Detailed Description

Definition at line 33 of file Microtime.php.

Constructor & Destructor Documentation

Doctrine_AuditLog_Listener_Microtime::__construct ( Doctrine_AuditLog  $auditLog)

Instantiate AuditLog listener and set the Doctrine_AuditLog instance to the class

Parameters
Doctrine_AuditLog$auditLog
Returns
void

Definition at line 48 of file Microtime.php.

{
parent::__construct($auditLog);
$version = $this->_auditLog->getOption('version');
if (!empty($version['accuracy'])) {
$this->accuracy = $version['accuracy'];
}
}

Member Function Documentation

Doctrine_AuditLog_Listener_Microtime::_getInitialVersion ( Doctrine_Record  $record)
protected

Get the initial version number for the audit log

Parameters
Doctrine_Record$record
Returns
integer $initialVersion

Definition at line 63 of file Microtime.php.

{
return $this->_microtime();
}
Doctrine_AuditLog_Listener_Microtime::_getNextVersion ( Doctrine_Record  $record)
protected

Get the next version number for the audit log

Parameters
Doctrine_Record$record
Returns
integer $nextVersion

Definition at line 74 of file Microtime.php.

{
return $this->_microtime();
}
Doctrine_AuditLog_Listener_Microtime::_microtime ( )
protected

Compute a version out of microtime(true)

Returns
string $version

Definition at line 84 of file Microtime.php.

{
$version = microtime(true) - 1073741824; // 31 bits
$version = str_replace('.', '', (string)$version);
return substr($version, 0, $this->accuracy);
}
Doctrine_Record_Listener::getOption (   $name)
inherited

getOption returns the value of given option

Parameters
string$namethe name of the option
Returns
mixed the value of given option

Definition at line 74 of file Listener.php.

{
if (isset($this->_options[$name])) {
return $this->_options[$name];
}
return null;
}
Doctrine_Record_Listener::getOptions ( )
inherited

getOptions returns all options of this template and the associated values

Returns
array all options and their values

Definition at line 62 of file Listener.php.

{
return $this->_options;
}
Doctrine_AuditLog_Listener::postInsert ( Doctrine_Event  $event)
inherited

Post insert event hook which creates the new version record This will only insert a version record if the auditLog is enabled

Parameters
Doctrine_Event$event
Returns
void

Definition at line 75 of file Listener.php.

{
if ($this->_auditLog->getOption('auditLog')) {
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$version = new $class();
$version->merge($record->toArray(), false);
$version->save();
}
}
Doctrine_AuditLog_Listener::preDelete ( Doctrine_Event  $event)
inherited

Pre delete event hook deletes all related versions This will only delete version records if the auditLog is enabled

Parameters
Doctrine_Event$event
Returns
void

Definition at line 94 of file Listener.php.

{
if ($this->_auditLog->getOption('auditLog')) {
$className = $this->_auditLog->getOption('className');
$version = $this->_auditLog->getOption('version');
$name = $version['alias'] === null ? $version['name'] : $version['alias'];
$event->getInvoker()->set($name, null);
if ($this->_auditLog->getOption('deleteVersions')) {
$q = Doctrine_Core::getTable($className)
->createQuery('obj')
->delete();
foreach ((array) $this->_auditLog->getOption('table')->getIdentifier() as $id) {
$conditions[] = 'obj.' . $id . ' = ?';
$values[] = $event->getInvoker()->get($id);
}
$rows = $q->where(implode(' AND ', $conditions))
->execute($values);
}
}
}
Doctrine_AuditLog_Listener::preInsert ( Doctrine_Event  $event)
inherited

Pre insert event hook for incrementing version number

Parameters
Doctrine_Event$event
Returns
void

Definition at line 59 of file Listener.php.

{
$version = $this->_auditLog->getOption('version');
$name = $version['alias'] === null ? $version['name'] : $version['alias'];
$record = $event->getInvoker();
$record->set($name, $this->_getInitialVersion($record));
}
Doctrine_AuditLog_Listener::preUpdate ( Doctrine_Event  $event)
inherited

Pre update event hook for inserting new version record This will only insert a version record if the auditLog is enabled

Parameters
Doctrine_Event$event
Returns
void

Definition at line 124 of file Listener.php.

{
if ($this->_auditLog->getOption('auditLog')) {
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$version = $this->_auditLog->getOption('version');
$name = $version['alias'] === null ? $version['name'] : $version['alias'];
$record->set($name, $this->_getNextVersion($record));
$version = new $class();
$version->merge($record->toArray(), false);
$version->save();
}
}
Doctrine_Record_Listener::setOption (   $name,
  $value = null 
)
inherited

setOption sets an option in order to allow flexible listener

Parameters
mixed$namethe name of the option to set
mixed$valuethe value of the option

Definition at line 47 of file Listener.php.

{
if (is_array($name)) {
$this->_options = Doctrine_Lib::arrayDeepMerge($this->_options, $name);
} else {
$this->_options[$name] = $value;
}
}

The documentation for this class was generated from the following file: