Skip to content
This repository has been archived by the owner on May 14, 2019. It is now read-only.

akelos/acts-as-versioned

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Acts as versioned behaviour plugin for Akelos Active Records
===================================

This plugin adds versioning capabilities to you Active Record Models.


Installation
--------------------------------

    ./script/install acts_as_versioned

Enabling versioning in your models
--------------------------------

Say you have a Chapter model and you want to keep the latest 20 modifications for each chapter.

=== Adding the acts as behaviour to your Chapter model

./app/models/chapter.php

    <?php

    class Chapter extends ActiveRecord
    {
        var $acts_as = array('versioned' => array('limit'=>10));
    }

    ?>

=== Modifying your chapters table to add a version number and create a chapter_versions table

./app/installers/chapter_installer.php

    <?php

    Ak::import('Chapter');
    Ak::loadPlugins();

    class ChapterInstaller extends AkInstaller
    {
        function up_1()
        {
            //.....
        }

        function up_2()
        {
            $Chapter =& new Chapter();
            $Chapter->versioned->createVersionedTable();
        }

        function down_1()
        {
            //.....
        }

        function down_2()
        {
            $Chapter =& new Chapter();
            $Chapter->versioned->dropVersionedTable();
        }
    }

    ?>

=== Using your brand new versioning system

 * $Chapter->versioned  // behaviour handler
 * $Chapter->versioned->load() // Loads versions, pass true to force a db reload
 * $Chapter->versioned->revertToVersion(3); // Rolling back a version
 * $Chapter->versioned->find(); // Same as find() but scoped to older versions
 * $Chapter->versions // Guess what? An array with your versions
 * $Chapter->versions[2]->getNext(); // Next versioned item if exists
 * $Chapter->versions[2]->getPrevious(); // Previous versioned item if exists 


About

Acts as versioned plugin for the Akelos PHP Framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages