2017 © Pedro Peláez
 

cakephp-plugin trash

Adds soft delete support to CakePHP 3 ORM tables.

image

muffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  • Tuesday, April 17, 2018
  • by jadb
  • Repository
  • 10 Watchers
  • 61 Stars
  • 96,842 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 20 Forks
  • 4 Open issues
  • 8 Versions
  • 13 % Grown

The README.md

Trash

Build Status Coverage Total Downloads License, (*1)

Adds "soft"-delete support to CakePHP tables., (*2)

Install

Using Composer:, (*3)

composer require muffin/trash

You then need to load the plugin. You can use the shell command:, (*4)

bin/cake plugin load Muffin/Trash

Usage

In your table(s), add the behavior like you would for any other behavior:, (*5)

// in the initialize() method
$this->addBehavior('Muffin/Trash.Trash');

By default, the behavior will auto-detect the DATETIME column used to track trashed (soft-deleted) records but only if you are using deleted or trashed as names. Otherwise, you could customize that when adding the behavior:, (*6)

// in the initialize() method
$this->addBehavior('Muffin/Trash.Trash', [
    'field' => 'deleted_at'
]);

or, at the global level, in bootstrap.php:, (*7)

Configure::write('Muffin/Trash.field', 'deleted_at');

Finally, if you would like to keep the default cake behavior when running find() or delete() operations and explicitly call the behavior when you need 'trash'-ing functionality, just disable the event(s):, (*8)

// in the initialize() method
$this->addBehavior('Muffin/Trash.Trash', [
    'events' => ['Model.beforeFind'] // enables the beforeFind event only, false to disable both
]);

or use the purge option:, (*9)

$table->delete($entity, ['purge' => true]);

Cascading deletion

If you'd like to have related records marked as trashed when deleting a parent item, you can just attach the behavior to the related table classes, and set the 'dependent' => true, 'cascadeCallbacks' => true options in the table relationships., (*10)

This works on relationships where the item being deleted in the owning side of the relationship. Which means that the related table should contain the foreign key., (*11)

Custom Finders

  • onlyTrashed - helps getting only those trashed records.
  • withTrashed - when filtering out the trashed records by default, this method comes in handy to have them included as part of certain calls.

Extras

  • emptyTrash() - permanently deletes all trashed records.
  • restoreTrash($entity = null, array $options = []) - restores one (or all) trashed records.
  • cascadingRestoreTrash($entity = null, array $options = []) - restores one (or all) trashed records including those of dependent associations.
  • trash($entity, array $options = []) - like delete() but for a soft-delete (handy when Model.beforeDelete is disabled by default).
  • trashAll(array $conditions) - like deleteAll() but for soft-deletes.

Patches & Features

  • Fork
  • Mod, fix
  • Test - this is important, so it's not unintentionally broken
  • Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
  • Pull request - bonus point for topic branches

To ensure your PRs are considered for upstream, you MUST follow the CakePHP coding standards., (*12)

Bugs & Feedback

http://github.com/usemuffin/trash/issues, (*13)

License

Copyright (c) 2015-present, Use Muffin and licensed under The MIT License., (*14)

The Versions

17/04 2018

dev-master

9999999-dev https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

17/04 2018

2.1.0

2.1.0.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

17/04 2018

dev-next

dev-next https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

10/10 2017

2.0.0

2.0.0.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

20/06 2017

1.2.0

1.2.0.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

03/08 2016

1.1.0

1.1.0.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

24/06 2016

1.0.1

1.0.1.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 ORM tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

orm cakephp muffin trash

06/12 2015

1.0.0

1.0.0.0 https://github.com/usemuffin/trash

Adds soft delete support to CakePHP 3 tables.

  Sources   Download

MIT

The Requires

 

The Development Requires

cakephp muffin trash