cape-and-bay/versionable
Composer 安装命令:
composer require cape-and-bay/versionable
包简介
Laravel Drafts tool for models
关键字:
README 文档
README
⏱️ Make Laravel model versionable.
It's a minimalist way to make your model support version history, and it's very simple to roll back to the specified version.
Requirement
- PHP >= 8.1
- laravel/framework >= 9.0
Installing
composer require cape-and-bay/versionable -vvv
Then run this command to create a database migration:
php artisan migrate
Usage
Add CapeAndBay\Versionable\Versionable trait to the model that you want to be versioned:
use CapeAndBay\Versionable\Versionable; class Post extends Model { use Versionable; # Prevents versioning Post if only the "is_active" column is updated. protected array $dont_version = ['is_active']; }
Versions will be created on vensionable model saved.
$post = Post::create(['title' => 'version1', 'content' => 'version1 content']); $post->update(['title' => 'version2']);
You can prevent a new version of model from being created by return false on onNewVersionCreate. to use this method, your model must implement the VersionableInterface in conjunction with Versionable trait:
use CapeAndBay\Versionable\Versionable; use CapeAndBay\Versionable\VersionableInterface; use Illuminate\Database\Eloquent\Model; class User extends Model implements VersionableInterface { use Versionable; public function onNewVersionCreate(Model $model) : bool { // Create new version if email is not "skip@mail.com" return $model->email !== 'skip@mail.com'; } }
Get versions
$post->versions; // all versions $post->latestVersion(); // latest version $post->versions->first(); // first version
cape-and-bay/versionable 适用场景与选型建议
cape-and-bay/versionable 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.54k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 01 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「versionable」 「capeandbay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 cape-and-bay/versionable 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 cape-and-bay/versionable 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 cape-and-bay/versionable 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A package for keeping a history of your models' revisions and accessing your data as it was at an older date.
Laravel Drafts tool for models
Versionable is a propel behavior, fixed and improved in comparison to original propel versionable.
Advanced Laravel Database package with enhanced Eloquent traits, scopes, casts, and utilities for modern Laravel applications
This behavior extends the versionable behavior to allow saving of versions even if active record is deleted
A vault access
统计信息
- 总下载量: 2.54k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 38
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-01-18