mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-05-20 03:19:13 -04:00
Rename 'kohana' to 'system' to conform to the Kohana filesystem layout. I'm comfortable with us not clearly drawing the distinction about the fact that it's Kohana.
This commit is contained in:
70
system/libraries/Event_Observer.php
Normal file
70
system/libraries/Event_Observer.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php defined('SYSPATH') OR die('No direct access allowed.');
|
||||
/**
|
||||
* Kohana event observer. Uses the SPL observer pattern.
|
||||
*
|
||||
* $Id: Event_Observer.php 3769 2008-12-15 00:48:56Z zombor $
|
||||
*
|
||||
* @package Core
|
||||
* @author Kohana Team
|
||||
* @copyright (c) 2007-2008 Kohana Team
|
||||
* @license http://kohanaphp.com/license.html
|
||||
*/
|
||||
abstract class Event_Observer implements SplObserver {
|
||||
|
||||
// Calling object
|
||||
protected $caller;
|
||||
|
||||
/**
|
||||
* Initializes a new observer and attaches the subject as the caller.
|
||||
*
|
||||
* @param object Event_Subject
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(SplSubject $caller)
|
||||
{
|
||||
// Update the caller
|
||||
$this->update($caller);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the observer subject with a new caller.
|
||||
*
|
||||
* @chainable
|
||||
* @param object Event_Subject
|
||||
* @return object
|
||||
*/
|
||||
public function update(SplSubject $caller)
|
||||
{
|
||||
if ( ! ($caller instanceof Event_Subject))
|
||||
throw new Kohana_Exception('event.invalid_subject', get_class($caller), get_class($this));
|
||||
|
||||
// Update the caller
|
||||
$this->caller = $caller;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detaches this observer from the subject.
|
||||
*
|
||||
* @chainable
|
||||
* @return object
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
// Detach this observer from the caller
|
||||
$this->caller->detach($this);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the observer of a new message. This function must be defined in
|
||||
* all observers and must take exactly one parameter of any type.
|
||||
*
|
||||
* @param mixed message string, object, or array
|
||||
* @return void
|
||||
*/
|
||||
abstract public function notify($message);
|
||||
|
||||
} // End Event Observer
|
||||
Reference in New Issue
Block a user