all-in-one-event-calendar/lib/event/callback/abstract.php
2017-11-09 17:36:04 +01:00

62 lines
No EOL
1.5 KiB
PHP

<?php
/**
* Abstract Class for Callback Events.
*
* @author Time.ly Network Inc.
* @since 2.0
*
* @package AI1EC
* @subpackage AI1EC.Event
*/
abstract class Ai1ec_Event_Callback_Abstract {
/**
* @var Ai1ec_Registry_Object The Object registry.
*/
protected $_registry = null;
/**
* @var string The registry method name defined in the class map.
*/
protected $_registry_name = null;
/**
* @var string The method invoked by the current callback.
*/
protected $_method = null;
/**
* Initiate callback objects.
*
* @param Ai1ec_Registry_Object $registry Registry object.
* @param string $path Registry method name defined in the class map.
* @param string $method Method invoked by the currect callback.
*
* @return void Constructor does not return.
*/
public function __construct(
Ai1ec_Registry_Object $registry,
$path,
$method
) {
$this->_registry = $registry;
$this->_registry_name = $path;
$this->_method = $method;
}
/**
* Invoke the method added to the current callback.
*
* @return mixed Value returned by the current method.
*/
public function run() {
$argv = func_get_args();
return $this->_registry->dispatch(
$this->_registry_name,
$this->_method,
$argv
);
}
}