TYPO3 API  SVNRelease
class.t3lib_utility_dependency_callback.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003  * Copyright notice
00004  *
00005  * (c) 2010-2011 Oliver Hader <oliver@typo3.org>
00006  * All rights reserved
00007  *
00008  * This script is part of the TYPO3 project. The TYPO3 project is
00009  * free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * The GNU General Public License can be found at
00015  * http://www.gnu.org/copyleft/gpl.html.
00016  * A copy is found in the textfile GPL.txt and important notices to the license
00017  * from the author is found in LICENSE.txt distributed with these scripts.
00018  *
00019  *
00020  * This script is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023  * GNU General Public License for more details.
00024  *
00025  * This copyright notice MUST APPEAR in all copies of the script!
00026  ***************************************************************/
00027 
00028 /**
00029  * Object to hold information on a callback to a defined object and method.
00030  */
00031 class t3lib_utility_Dependency_Callback {
00032     /**
00033      * @var object
00034      */
00035     protected $object;
00036 
00037     /**
00038      * @var string
00039      */
00040     protected $method;
00041 
00042     /**
00043      * @var array
00044      */
00045     protected $targetArguments;
00046 
00047     /**
00048      * Creates the objects.
00049      *
00050      * @param object $object
00051      * @param string $method
00052      * @param array $targetArguments (optional)
00053      */
00054     public function __construct($object, $method, array $targetArguments = array()) {
00055         $this->object = $object;
00056         $this->method = $method;
00057         $this->targetArguments = $targetArguments;
00058         $this->targetArguments['target'] = $object;
00059     }
00060 
00061     /**
00062      * Executes the callback.
00063      *
00064      * @param array $callerArguments
00065      * @param object $caller
00066      * @param string $eventName
00067      * @return mixed
00068      */
00069     public function execute(array $callerArguments = array(), $caller, $eventName) {
00070         return call_user_func_array(
00071             array($this->object, $this->method),
00072             array($callerArguments, $this->targetArguments, $caller, $eventName)
00073         );
00074     }
00075 }