boing6002 / versioning
Prevents update conflicts using the optimistic lock pattern in Laravel
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 8
pkg:composer/boing6002/versioning
Requires
- laravel/framework: ^5.5
README
Prevents update conflicts using the optimistic lock pattern in Laravel
Details
- the package creates a
versioningstable where it holds versions for all the versionable models - by using the
Versionabletrait on a model versioning is handled automatically - by default the trait appends a
versionattribute 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
SoftDeletesthe versioning is deleted only on modelforceDelete - throws a
ConflictHttpExceptionif 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.