[BUGFIX] Fix several typos in php comments
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Service / AbstractService.php
index c10eb0d..e440c89 100644 (file)
@@ -28,6 +28,34 @@ abstract class AbstractService implements LoggerAwareInterface
 {
     use LoggerAwareTrait;
 
+    // General error - something went wrong
+    const ERROR_GENERAL = -1;
+
+    // During execution it showed that the service is not available and
+    // should be ignored. The service itself should call $this->setNonAvailable()
+    const ERROR_SERVICE_NOT_AVAILABLE = -2;
+
+    // Passed subtype is not possible with this service
+    const ERROR_WRONG_SUBTYPE = -3;
+
+    // Passed subtype is not possible with this service
+    const ERROR_NO_INPUT = -4;
+
+    // File not found which the service should process
+    const ERROR_FILE_NOT_FOUND = -20;
+
+    // File not readable
+    const ERROR_FILE_NOT_READABLE = -21;
+
+    // File not writable
+    // @todo: check writeable vs. writable
+    const ERROR_FILE_NOT_WRITEABLE = -22;
+
+    // Passed subtype is not possible with this service
+    const ERROR_PROGRAM_NOT_FOUND = -40;
+
+    // Passed subtype is not possible with this service
+    const ERROR_PROGRAM_FAILED = -41;
     /**
      * @var array service description array
      */
@@ -39,15 +67,6 @@ abstract class AbstractService implements LoggerAwareInterface
     public $error = [];
 
     /**
-     * Write additional log entries
-     *
-     * Specifically useful during development of authentication services
-     *
-     * @var bool
-     */
-    public $writeDevLog = false;
-
-    /**
      * @var string The output content. That's what the services produced as result.
      */
     public $out = '';
@@ -136,9 +155,11 @@ abstract class AbstractService implements LoggerAwareInterface
     public function getServiceOption($optionName, $defaultValue = '', $includeDefaultConfig = true)
     {
         $config = null;
-        $svOptions = $GLOBALS['TYPO3_CONF_VARS']['SVCONF'][$this->info['serviceType']];
-        if (isset($svOptions[$this->info['serviceKey']][$optionName])) {
-            $config = $svOptions[$this->info['serviceKey']][$optionName];
+        $serviceType = $this->info['serviceType'] ?? '';
+        $serviceKey = $this->info['serviceKey'] ?? '';
+        $svOptions = $GLOBALS['TYPO3_CONF_VARS']['SVCONF'][$serviceType] ?? [];
+        if (isset($svOptions[$serviceKey][$optionName])) {
+            $config = $svOptions[$serviceKey][$optionName];
         } elseif ($includeDefaultConfig && isset($svOptions['default'][$optionName])) {
             $config = $svOptions['default'][$optionName];
         }
@@ -153,30 +174,14 @@ abstract class AbstractService implements LoggerAwareInterface
      *  Error handling
      *
      ***************************************/
-    /**
-     * Logs debug messages to the Logging API
-     *
-     * @param string $msg Debug message
-     * @param int $severity Severity: 0 is info, 1 is notice, 2 is warning, 3 is fatal error, -1 is "OK" message
-     * @param array|bool $dataVar additional data you want to pass to the logger.
-     * @deprecated since TYPO3 CMS 9, will be removed in TYPO3 CMS 10.
-     */
-    public function devLog($msg, $severity = 0, $dataVar = false)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if ($this->writeDevLog) {
-            $message = $this->info['serviceKey'] . ': ' . $msg;
-            $this->logger->debug($message, (array)$dataVar);
-        }
-    }
 
     /**
      * Puts an error on the error stack. Calling without parameter adds a general error.
      *
-     * @param int $errNum Error number (see T3_ERR_SV_* constants)
+     * @param int $errNum Error number (see class constants)
      * @param string $errMsg Error message
      */
-    public function errorPush($errNum = T3_ERR_SV_GENERAL, $errMsg = 'Unspecified error occurred')
+    public function errorPush($errNum = self::ERROR_GENERAL, $errMsg = 'Unspecified error occurred')
     {
         $this->error[] = ['nr' => $errNum, 'msg' => $errMsg];
         /** @var \TYPO3\CMS\Core\TimeTracker\TimeTracker $timeTracker */
@@ -275,7 +280,7 @@ abstract class AbstractService implements LoggerAwareInterface
         foreach ($progList as $prog) {
             if (!CommandUtility::checkCommand($prog)) {
                 // Program not found
-                $this->errorPush(T3_ERR_SV_PROG_NOT_FOUND, 'External program not found: ' . $prog);
+                $this->errorPush(self::ERROR_PROGRAM_NOT_FOUND, 'External program not found: ' . $prog);
                 $ret = false;
             }
         }
@@ -308,10 +313,10 @@ abstract class AbstractService implements LoggerAwareInterface
             if (@is_readable($absFile)) {
                 $checkResult = $absFile;
             } else {
-                $this->errorPush(T3_ERR_SV_FILE_READ, 'File is not readable: ' . $absFile);
+                $this->errorPush(self::ERROR_FILE_NOT_READABLE, 'File is not readable: ' . $absFile);
             }
         } else {
-            $this->errorPush(T3_ERR_SV_FILE_NOT_FOUND, 'File not found: ' . $absFile);
+            $this->errorPush(self::ERROR_FILE_NOT_FOUND, 'File not found: ' . $absFile);
         }
         return $checkResult;
     }
@@ -329,7 +334,7 @@ abstract class AbstractService implements LoggerAwareInterface
         if ($this->checkInputFile($absFile)) {
             $out = file_get_contents($absFile);
             if ($out === false) {
-                $this->errorPush(T3_ERR_SV_FILE_READ, 'Can not read from file: ' . $absFile);
+                $this->errorPush(self::ERROR_FILE_NOT_READABLE, 'Can not read from file: ' . $absFile);
             }
         }
         return $out;
@@ -352,7 +357,7 @@ abstract class AbstractService implements LoggerAwareInterface
                 @fwrite($fd, $content);
                 @fclose($fd);
             } else {
-                $this->errorPush(T3_ERR_SV_FILE_WRITE, 'Can not write to file: ' . $absFile);
+                $this->errorPush(self::ERROR_FILE_NOT_WRITEABLE, 'Can not write to file: ' . $absFile);
                 $absFile = false;
             }
         }
@@ -373,7 +378,7 @@ abstract class AbstractService implements LoggerAwareInterface
             $this->registerTempFile($absFile);
         } else {
             $ret = false;
-            $this->errorPush(T3_ERR_SV_FILE_WRITE, 'Can not create temp file.');
+            $this->errorPush(self::ERROR_FILE_NOT_WRITEABLE, 'Can not create temp file.');
         }
         return $ret;
     }
@@ -516,7 +521,7 @@ abstract class AbstractService implements LoggerAwareInterface
      * Initialization of the service.
      *
      * The class have to do a strict check if the service is available.
-     * example: check if the perl interpreter is available which is needed to run an extern perl script.
+     * example: check if the perl interpreter is available which is needed to run an external perl script.
      *
      * @return bool TRUE if the service is available
      */
@@ -526,8 +531,7 @@ abstract class AbstractService implements LoggerAwareInterface
         $this->reset();
         // Check for external programs which are defined by $info['exec']
         if (trim($this->info['exec'])) {
-            if (!$this->checkExec($this->info['exec'])) {
-            }
+            $this->checkExec($this->info['exec']);
         }
         return $this->getLastError() === true;
     }