Download the PHP package overtrue/laravel-versionable without Composer
On this page you can find all versions of the php package overtrue/laravel-versionable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download overtrue/laravel-versionable
More information about overtrue/laravel-versionable
Files in overtrue/laravel-versionable
Package laravel-versionable
Short Description Make Laravel model versionable.
License MIT
Informations about the package laravel-versionable
Laravel Versionable
It's a minimalist way to make your model support version history, and it's very simple to revert to the specified version.
Requirement
- PHP >= 8.1.0
- laravel/framework >= 9.0
Features
- Keep the specified number of versions.
- Whitelist and blacklist for versionable attributes.
- Easily revert to the specified version.
- Record only changed attributes.
- Easy to customize.
Installing
First, publish the config file and migrations:
Then run this command to create a database migration:
Usage
Add Overtrue\LaravelVersionable\Versionable
trait to the model and set versionable attributes:
Versions will be created on the vensionable model saved.
Get versions
Revert
Revert a model instance to the specified version:
Revert without saving
Remove versions
Restore deleted version by id
Temporarily disable versioning
Custom Version Store strategy
You can set the following different version policies through property protected $versionStrategy
:
Overtrue\LaravelVersionable\VersionStrategy::DIFF
- Version content will only contain changed attributes (default strategy).Overtrue\LaravelVersionable\VersionStrategy::SNAPSHOT
- Version content will contain all versionable attribute values.
Show diff between the two versions
$diff
is a object Overtrue\LaravelVersionable\Diff
, it based
on jfcherng/php-diff.
You can render the diff to many formats, and all formats result will be like follows:
toArray()
Other formats
Note
$differOptions
and$renderOptions
are optional, you can set them following the README of jfcherng/php-diff.$stripTags
allows you to remove HTML tags from the Diff, helpful when you don't want to show tags.
Using custom version model
You can define $versionModel
in a model, that used this trait to change the model(table) for versions
Note
Model MUST extend class
\Overtrue\LaravelVersionable\Version
;
Update the model attribute $versionModel
:
Intergrations
- mansoorkhan96/filament-versionable Effortlessly manage revisions of your Eloquent models in Filament.
:heart: Sponsor me
如果你喜欢我的项目并想支持它,点击这里 :heart:
Project supported by JetBrains
Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects.
Contributing
You can contribute in one of three ways:
- File bug reports using the issue tracker.
- Answer questions or fix bugs on the issue tracker.
- Contribute new features or update the wiki.
The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.
License
MIT
All versions of laravel-versionable with dependencies
laravel/framework Version ^9.0|^10.0|^11.0
jfcherng/php-diff Version ^6.11
doctrine/dbal Version ^3.8|^4.0