salines/cakephp4-soft-delete
最新稳定版本:1.0.4
Composer 安装命令:
composer require salines/cakephp4-soft-delete
包简介
SoftDelete plugin updated for CakePHP 4
README 文档
README
Fork
This repo is forked from not maintained pgbi/cakephp3-soft-delete and updated to avoid deprecated code in CakePHP >=4.0
Purpose
This Cakephp plugin enables you to make your models soft deletable.
When soft deleting an entity, it is not actually removed from your database. Instead, a deleted timestamp is set on the record.
Requirements
This plugins has been developed for cakephp >=4.0 and PHP >=7.2
Installation
You can install this plugin into your CakePHP application using composer.
Update your composer file to include this plugin:
composer require salines/cakephp4-soft-delete "~1.0"
Configuration
Make a model soft deleteable:
Use the SoftDelete trait on your model Table class:
// in src/Model/Table/UsersTable.php
...
use SoftDelete\Model\Table\SoftDeleteTrait;
class UsersTable extends Table
{
use SoftDeleteTrait;
...
Your soft deletable model database table should have a field called deleted of type DateTime with NULL as default value.
If you want to customise this field you can declare the field in your Table class.
// in src/Model/Table/UsersTable.php ... use SoftDelete\Model\Table\SoftDeleteTrait; class UsersTable extends Table { use SoftDeleteTrait; protected $softDeleteField = 'deleted_date'; ...
Use
Soft deleting records
delete and deleteAll functions will now soft delete records by populating deleted field with the date of the deletion.
// in src/Model/Table/UsersTable.php $this->delete($user); // $user entity is now soft deleted if UsersTable uses SoftDeleteTrait.
Restoring Soft deleted records
To restore a soft deleted entity into an active state, use the restore method:
// in src/Model/Table/UsersTable.php // Let's suppose $user #1 is soft deleted. $user = $this->Users->find('all', ['withDeleted'])->where('id', 1)->first(); $this->restore($user); // $user #1 is now restored.
Finding records
find, get or dynamic finders (such as findById) will only return non soft deleted records.
To also return soft deleted records, $options must contain 'withDeleted'. Example:
// in src/Model/Table/UsersTable.php $nonSoftDeletedRecords = $this->find('all'); $allRecords = $this->find('all', ['withDeleted']);
Hard deleting records
To hard delete a single entity:
// in src/Model/Table/UsersTable.php $user = $this->get($userId); $success = $this->hardDelete($user);
To mass hard delete records that were soft deleted before a given date, you can use hardDeleteAll($date):
// in src/Model/Table/UsersTable.php
$date = new \DateTime('some date');
$affectedRowsCount = $this->hardDeleteAll($date);
Soft deleting & associations
Associations are correctly handled by SoftDelete plugin.
- Soft deletion will be cascaded to related models as usual. If related models also use SoftDelete Trait, they will be soft deleted.
- Soft deletes records will be excluded from counter caches.
salines/cakephp4-soft-delete 适用场景与选型建议
salines/cakephp4-soft-delete 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 154.56k 次下载、GitHub Stars 达 9, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「plugin」 「cakephp」 「delete」 「soft」 「deletable」 「cakephp 4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 salines/cakephp4-soft-delete 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 salines/cakephp4-soft-delete 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 salines/cakephp4-soft-delete 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
CakePHP 4.x AdminLTE Theme.
SoftDelete plugin for CakePHP
Laravel console command for deleting temp files and associated model instances.
Email Toolkit Plugin for CakePHP
Rhino, a CMS and Application-Framework plugin for CakePHP
A CakePHP plugin for sending mail via SparkPost's REST API
统计信息
- 总下载量: 154.56k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 24
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 未知