boing6002/versioning

Prevents update conflicts using the optimistic lock pattern in Laravel

1.1.10 2018-11-16 14:58 UTC

This package is not auto-updated.

Last update: 2020-09-20 05:12:33 UTC


README

Codacy Badge StyleCI License Total Downloads Latest Stable Version

Prevents update conflicts using the optimistic lock pattern in Laravel

Details

  • the package creates a versionings table where it holds versions for all the versionable models
  • by using the Versionable trait on a model versioning is handled automatically
  • by default the trait appends a version attribute after the model is retrieved used for tracking versions and expects the same attribute to be present on the model when the update is called
  • the default versioning attribute can be customized by using protected $versioningAttribute = 'customVersionAttribte' on the model
  • the trait can be used on models that already have records in the database, the versioning starts with the first retrieval of those models
  • when a versionable model is deleted its versioning is deleted also. If the model uses SoftDeletes the versioning is deleted only on model forceDelete
  • throws a ConflictHttpException if the version is incorrect
  • tests are included with the package
  • package comes included by default with Enso

Configuration & Usage

Be sure to check out the full Enso documentation at docs.laravel-enso.com

Contributions

are welcome. Pull requests are great, but issues are good too.

License

This package is released under the MIT license.