hightowersu/redbean_rebean

There is no license information available for the latest version (dev-master) of this package.

This is a plugin for the RedBeanPHP ORM, which will be generating automatically revision tables for given Beans

Maintainers

Package info

github.com/highTowerSU/RedBean_ReBean

pkg:composer/hightowersu/redbean_rebean

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

dev-master 2025-10-16 16:59 UTC

This package is auto-updated.

Last update: 2026-03-16 18:08:28 UTC


README

This is a plugin for the RedBeanPHP ORM, which will be generating automatically revision tables for given Beans

This is achieved by creating a table named after your beantype plus the "revision" prefix. The table contains all the columns from your bean. Additionally it has a column "action" specifying if this revision was made by an [INSERT,UPDATE,DELETE] statement. Also inlcuded is the column "original_id" which represents the ID of the bean, that's been revisioned. Finally there is a "lastedit" column indicating when the change happend.

All the functionallity is achieved by using AFTER Triggers

Current status: The plugin so far works for Mysql, although not properly tested. Please use it just for testing and NOT IN PRODUCTION so far.

Update:

  • Now uses the R::ext plugin helper so you can access Revisioning without any previous instance creation. Just use R::createRevisionSupport($YOURBEAN);
  • Added PHPUnit Tests
  • Throw Exception if Bean is already under revision support

Usage:

  • Download the latest version of RedBean from Github or install via Composer.
  • Add the file ReBean.php to the RedBean/Plugin folder
  • Either manually require the file or see the RedBean instructions for building your on RB.php file
  • Create your first bean type
  • Store it in the DB (R::store($YOURBEAN))
  • Call the revision method like this
   R::createRevisionSupport($YOURBEAN);
  • Happy modifying of your previous Bean. You should be able to see all changes in the created revisiontable

Example:

Take a look at the included example.php.