定制 marcj/optimistic-locking-behavior 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

marcj/optimistic-locking-behavior

Composer 安装命令:

composer require marcj/optimistic-locking-behavior

包简介

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

README 文档

README

OptimisticLockingBehavior

A behavior for Propel2 for optimistic locking.

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:

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

You can define a different locking columns. Default is version.

<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.

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

统计信息

  • 总下载量: 146.64k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2014-12-04