Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JEventDispatcher
+ Graphe d'héritage de JEventDispatcher:
+ Graphe de collaboration de JEventDispatcher:

Liste de tous les membres

Fonctions membres publiques

 getState ()
 register ($event, $handler)
 trigger ($event, $args=array())
 attach ($observer)
 detach ($observer)
- Fonctions membres publiques inherited from JObject
 __construct ($properties=null)
 __toString ()
 def ($property, $default=null)
 get ($property, $default=null)
 getProperties ($public=true)
 getError ($i=null, $toString=true)
 getErrors ()
 set ($property, $value=null)
 setProperties ($properties)
 setError ($error)

Fonctions membres publiques statiques

static getInstance ()

Attributs protégés

 $_observers = array()
 $_state = null
 $_methods = array()
- Attributs protégés inherited from JObject
 $_errors = array()

Attributs protégés statiques

static $instance = null

Description détaillée

Définition à la ligne 24 du fichier dispatcher.php.


Documentation des fonctions membres

JEventDispatcher::attach (   $observer)

Attach an observer object

Paramètres:
object$observerAn observer object to attach
Renvoie:
void
Depuis:
11.3

Définition à la ligne 188 du fichier dispatcher.php.

{
if (is_array($observer))
{
if (!isset($observer['handler']) || !isset($observer['event']) || !is_callable($observer['handler']))
{
return;
}
// Make sure we haven't already attached this array as an observer
foreach ($this->_observers as $check)
{
if (is_array($check) && $check['event'] == $observer['event'] && $check['handler'] == $observer['handler'])
{
return;
}
}
$this->_observers[] = $observer;
end($this->_observers);
$methods = array($observer['event']);
}
else
{
if (!($observer instanceof JEvent))
{
return;
}
// Make sure we haven't already attached this object as an observer
$class = get_class($observer);
foreach ($this->_observers as $check)
{
if ($check instanceof $class)
{
return;
}
}
$this->_observers[] = $observer;
$methods = array_diff(get_class_methods($observer), get_class_methods('JPlugin'));
}
$key = key($this->_observers);
foreach ($methods as $method)
{
$method = strtolower($method);
if (!isset($this->_methods[$method]))
{
$this->_methods[$method] = array();
}
$this->_methods[$method][] = $key;
}
}
JEventDispatcher::detach (   $observer)

Detach an observer object

Paramètres:
object$observerAn observer object to detach.
Renvoie:
boolean True if the observer object was detached.
Depuis:
11.3

Définition à la ligne 256 du fichier dispatcher.php.

{
$retval = false;
$key = array_search($observer, $this->_observers);
if ($key !== false)
{
unset($this->_observers[$key]);
$retval = true;
foreach ($this->_methods as &$method)
{
$k = array_search($key, $method);
if ($k !== false)
{
unset($method[$k]);
}
}
}
return $retval;
}
static JEventDispatcher::getInstance ( )
static

Returns the global Event Dispatcher object, only creating it if it doesn't already exist.

Renvoie:
JEventDispatcher The EventDispatcher object.
Depuis:
11.1

Définition à la ligne 66 du fichier dispatcher.php.

Référencé par JAuthentication\authorise(), JModelLegacy\cleanCache(), JModelAdmin\delete(), JUser\delete(), JUserHelper\getProfile(), JApplicationBase\loadDispatcher(), JModelForm\preprocessData(), JModelForm\preprocessForm(), JModelList\preprocessForm(), JModelAdmin\publish(), JUser\save(), et JModelAdmin\save().

{
if (self::$instance === null)
{
self::$instance = new static;
}
}

+ Voici le graphe des appelants de cette fonction :

JEventDispatcher::getState ( )

Get the state of the JEventDispatcher object

Renvoie:
mixed The state of the object.
Depuis:
11.3

Définition à la ligne 83 du fichier dispatcher.php.

{
return $this->_state;
}
JEventDispatcher::register (   $event,
  $handler 
)

Registers an event handler to the event dispatcher

Paramètres:
string$eventName of the event to register handler for
string$handlerName of the event handler
Renvoie:
void
Depuis:
11.1
Exceptions:
InvalidArgumentException

Définition à la ligne 99 du fichier dispatcher.php.

{
// Are we dealing with a class or callback type handler?
if (is_callable($handler))
{
// Ok, function type event handler... let's attach it.
$method = array('event' => $event, 'handler' => $handler);
$this->attach($method);
}
elseif (class_exists($handler))
{
// Ok, class type event handler... let's instantiate and attach it.
$this->attach(new $handler($this));
}
else
{
throw new InvalidArgumentException('Invalid event handler.');
}
}
JEventDispatcher::trigger (   $event,
  $args = array() 
)

Triggers an event by dispatching arguments to all observers that handle the event and returning their return values.

Paramètres:
string$eventThe event to trigger.
array$argsAn array of arguments.
Renvoie:
array An array of results from each function call.
Depuis:
11.1

Définition à la ligne 130 du fichier dispatcher.php.

{
$result = array();
/*
* If no arguments were passed, we still need to pass an empty array to
* the call_user_func_array function.
*/
$args = (array) $args;
$event = strtolower($event);
// Check if any plugins are attached to the event.
if (!isset($this->_methods[$event]) || empty($this->_methods[$event]))
{
// No Plugins Associated To Event!
return $result;
}
// Loop through all plugins having a method matching our event
foreach ($this->_methods[$event] as $key)
{
// Check if the plugin is present.
if (!isset($this->_observers[$key]))
{
continue;
}
// Fire the event for an object based observer.
if (is_object($this->_observers[$key]))
{
$args['event'] = $event;
$value = $this->_observers[$key]->update($args);
}
// Fire the event for a function based observer.
elseif (is_array($this->_observers[$key]))
{
$value = call_user_func_array($this->_observers[$key]['handler'], $args);
}
if (isset($value))
{
$result[] = $value;
}
}
return $result;
}

Documentation des données membres

JEventDispatcher::$_methods = array()
protected

Définition à la ligne 48 du fichier dispatcher.php.

JEventDispatcher::$_observers = array()
protected

Définition à la ligne 32 du fichier dispatcher.php.

JEventDispatcher::$_state = null
protected

Définition à la ligne 40 du fichier dispatcher.php.

JEventDispatcher::$instance = null
staticprotected

Définition à la ligne 56 du fichier dispatcher.php.


La documentation de cette classe a été générée à partir du fichier suivant :