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:
Bharat Mediratta
2009-05-27 15:11:53 -07:00
parent 00f47d4ddd
commit 12fe58d997
144 changed files with 1 additions and 1 deletions

View 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