mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-10-21 20:24:24 -05:00
Begin Refactor
This commit is contained in:
71
vendor/gabordemooij/redbean/RedBeanPHP/SimpleModelHelper.php
vendored
Normal file
71
vendor/gabordemooij/redbean/RedBeanPHP/SimpleModelHelper.php
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace RedBeanPHP;
|
||||
|
||||
use RedBeanPHP\Observer as Observer;
|
||||
use RedBeanPHP\OODBBean as OODBBean;
|
||||
use RedBeanPHP\Observable as Observable;
|
||||
|
||||
/**
|
||||
* RedBean Model Helper.
|
||||
*
|
||||
* Connects beans to models.
|
||||
* This is the core of so-called FUSE.
|
||||
*
|
||||
* @file RedBeanPHP/ModelHelper.php
|
||||
* @author Gabor de Mooij and the RedBeanPHP Community
|
||||
* @license BSD/GPLv2
|
||||
*
|
||||
* @copyright
|
||||
* copyright (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community
|
||||
* This source file is subject to the BSD/GPLv2 License that is bundled
|
||||
* with this source code in the file license.txt.
|
||||
*/
|
||||
class SimpleModelHelper implements Observer
|
||||
{
|
||||
/**
|
||||
* Gets notified by an observable.
|
||||
* This method decouples the FUSE system from the actual beans.
|
||||
* If a FUSE event happens 'update', this method will attempt to
|
||||
* invoke the corresponding method on the bean.
|
||||
*
|
||||
* @param string $eventName i.e. 'delete', 'after_delete'
|
||||
* @param OODBean $bean affected bean
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function onEvent( $eventName, $bean )
|
||||
{
|
||||
$bean->$eventName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Attaches the FUSE event listeners. Now the Model Helper will listen for
|
||||
* CRUD events. If a CRUD event occurs it will send a signal to the model
|
||||
* that belongs to the CRUD bean and this model will take over control from
|
||||
* there. This method will attach the following event listeners to the observable:
|
||||
*
|
||||
* - 'update' (gets called by R::store, before the records gets inserted / updated)
|
||||
* - 'after_update' (gets called by R::store, after the records have been inserted / updated)
|
||||
* - 'open' (gets called by R::load, after the record has been retrieved)
|
||||
* - 'delete' (gets called by R::trash, before deletion of record)
|
||||
* - 'after_delete' (gets called by R::trash, after deletion)
|
||||
* - 'dispense' (gets called by R::dispense)
|
||||
*
|
||||
* For every event type, this method will register this helper as a listener.
|
||||
* The observable will notify the listener (this object) with the event ID and the
|
||||
* affected bean. This helper will then process the event (onEvent) by invoking
|
||||
* the event on the bean. If a bean offers a method with the same name as the
|
||||
* event ID, this method will be invoked.
|
||||
*
|
||||
* @param Observable $observable object to observe
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function attachEventListeners( Observable $observable )
|
||||
{
|
||||
foreach ( array( 'update', 'open', 'delete', 'after_delete', 'after_update', 'dispense' ) as $eventID ) {
|
||||
$observable->addEventListener( $eventID, $this );
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user