[TASK] Re-work/simplify copyright header in PHP files - Part 4
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Service / AbstractService.php
index 5a4774f..a09a61a 100644 (file)
@@ -2,6 +2,19 @@
 namespace TYPO3\CMS\Core\Service;
 
 /**
+ * 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.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
  * Parent class for "Services" classes
  *
  * @author RenĂ© Fritz <r.fritz@colorcube.de>
@@ -21,7 +34,7 @@ abstract class AbstractService {
        public $error = array();
 
        /**
-        * @var bool Defines if debug messages should be written with t3lib_div::devLog
+        * @var bool Defines if debug messages should be written with \TYPO3\CMS\Core\Utility\GeneralUtility::devLog
         * @todo Define visibility
         */
        public $writeDevLog = FALSE;
@@ -65,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 = '';
@@ -133,7 +151,7 @@ abstract class AbstractService {
         *
         ***************************************/
        /**
-        * Logs debug messages to t3lib_div::devLog()
+        * Logs debug messages to \TYPO3\CMS\Core\Utility\GeneralUtility::devLog()
         *
         * @param string $msg Debug message
         * @param integer $severity Severity: 0 is info, 1 is notice, 2 is warning, 3 is fatal error, -1 is "OK" message
@@ -155,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);
@@ -253,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
@@ -370,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;
        }
 
@@ -508,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']
@@ -551,6 +570,3 @@ abstract class AbstractService {
        }
 
 }
-
-
-?>
\ No newline at end of file