2017 © Pedro Peláez
 

library optimistic-locking-behavior

A behavior allowing you to use optimistic locking in Propel 2.

image

marcj/optimistic-locking-behavior

A behavior allowing you to use optimistic locking in Propel 2.

  • Thursday, January 8, 2015
  • by MArcJ
  • Repository
  • 2 Watchers
  • 5 Stars
  • 603 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 2 % Grown

The README.md

OptimisticLockingBehavior

A behavior for Propel2 for optimistic locking., (*1)

Usage

<table name="user">
    <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />
    <column name="username" type="VARCHAR" size="100" primaryString="true" />
    <behavior name="optimistic_locking" />
</table>

If you haven't installed this behavior through composer, you need to specify the full class name as behavior name:, (*2)

    <behavior name="\MJS\OptimisticLocking\OptimisticLockingBehavior">

You can define a different locking columns. Default is version., (*3)

<behavior name="optimistic_locking" />
    <parameter name="version_column" value="locked_version"/>
</behavior>
$user = UserQuery::create()->findById($id);
$user->setUsername('Secret');

try {
    $user->save();
} catch (\MJS\OptimisticLocking\StaleObjectException $e) {
    //react on that case. Maybe show the edit form again with a hint
    //or reload $user and apply again your changes.
}

if (!$user->optimisticSave(){ 
    //whoops, there was someone faster.
}

Note for Versionable

This behavior is compatible to versionable-behavior. Make sure optimistic_locking behavior is loaded before versionable., (*4)

<behavior name="optimistic_locking" />
<behavior name="versionable" />

The Versions

08/01 2015

dev-master

9999999-dev

A behavior allowing you to use optimistic locking in Propel 2.

  Sources   Download

The Requires

 

The Development Requires