[TASK] Re-work/simplify copyright header in PHP files - Part 4
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Service / AbstractService.php
index 0fd2979..a09a61a 100644 (file)
@@ -1,31 +1,18 @@
 <?php
 namespace TYPO3\CMS\Core\Service;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2013 Kasper Skårhøj (kasperYYYY@typo3.com)
- *  All rights reserved
- *
- *  This script is part of the Typo3 project. The Typo3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
+/**
+ * This file is part of the TYPO3 CMS project.
  *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 
 /**
  * Parent class for "Services" classes
@@ -91,6 +78,11 @@ abstract class AbstractService {
        public $tempFiles = array();
 
        /**
+        * @var array list of registered shutdown functions; should be used to prevent registering the same function multiple times
+        */
+       protected $shutdownRegistry = array();
+
+       /**
         * @var string Prefix for temporary files
         */
        protected $prefixId = '';
@@ -181,7 +173,7 @@ abstract class AbstractService {
         * @return void
         * @todo Define visibility
         */
-       public function errorPush($errNum = T3_ERR_SV_GENERAL, $errMsg = 'Unspecified error occured') {
+       public function errorPush($errNum = T3_ERR_SV_GENERAL, $errMsg = 'Unspecified error occurred') {
                array_push($this->error, array('nr' => $errNum, 'msg' => $errMsg));
                if (is_object($GLOBALS['TT'])) {
                        $GLOBALS['TT']->setTSlogMessage($errMsg, 2);
@@ -279,7 +271,7 @@ abstract class AbstractService {
         */
        public function checkExec($progList) {
                $ret = TRUE;
-               $progList = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $progList, 1);
+               $progList = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $progList, TRUE);
                foreach ($progList as $prog) {
                        if (!\TYPO3\CMS\Core\Utility\CommandUtility::checkCommand($prog)) {
                                // Program not found
@@ -396,6 +388,10 @@ abstract class AbstractService {
         * @todo Define visibility
         */
        public function registerTempFile($absFile) {
+               if (!isset($this->shutdownRegistry[__METHOD__])) {
+                       register_shutdown_function(array($this, 'unlinkTempFiles'));
+                       $this->shutdownRegistry[__METHOD__] = TRUE;
+               }
                $this->tempFiles[] = $absFile;
        }
 
@@ -534,9 +530,6 @@ abstract class AbstractService {
         * @todo Define visibility
         */
        public function init() {
-               // Does not work :-(  but will not hurt
-               // use it as inspiration for a service based on this class
-               register_shutdown_function(array(&$this, '__destruct'));
                // look in makeInstanceService()
                $this->reset();
                // Check for external programs which are defined by $info['exec']
@@ -577,6 +570,3 @@ abstract class AbstractService {
        }
 
 }
-
-
-?>
\ No newline at end of file