Prechádzať zdrojové kódy

Merge pull request #483 from joanhey/http-clean

Unify and faster CLI SAPI validation
walkor 6 rokov pred
rodič
commit
2c6d49953d
2 zmenil súbory, kde vykonal 22 pridanie a 17 odobranie
  1. 14 9
      Protocols/Http.php
  2. 8 8
      Worker.php

+ 14 - 9
Protocols/Http.php

@@ -273,7 +273,7 @@ class Http
      */
     public static function header($content, $replace = true, $http_response_code = null)
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             \header($content, $replace, $http_response_code);
             return;
         }
@@ -312,7 +312,7 @@ class Http
      */
     public static function headerRemove($name)
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             \header_remove($name);
             return;
         }
@@ -327,6 +327,9 @@ class Http
      */
     public static function responseCode($code) 
     {
+        if (NO_CLI) {
+            return \http_response_code($code);
+        }
         if (isset(HttpCache::$codes[$code])) {
             HttpCache::$status = "HTTP/1.1 $code " . HttpCache::$codes[$code];
             return $code;
@@ -355,7 +358,7 @@ class Http
         $secure = false,
         $HTTPOnly = false
     ) {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             return \setcookie($name, $value, $maxage, $path, $domain, $secure, $HTTPOnly);
         }
 
@@ -389,7 +392,7 @@ class Http
      */
     public static function sessionId($id = null)
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             return $id ? \session_id($id) : \session_id();
         }
         if (static::sessionStarted() && HttpCache::$instance->sessionFile) {
@@ -407,7 +410,7 @@ class Http
      */
     public static function sessionName($name = null)
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             return $name ? \session_name($name) : \session_name();
         }
         $session_name = HttpCache::$sessionName;
@@ -426,7 +429,7 @@ class Http
      */
     public static function sessionSavePath($path = null)
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             return $path ? \session_save_path($path) : \session_save_path();
         }
         if ($path && \is_dir($path) && \is_writable($path) && !static::sessionStarted()) {
@@ -454,7 +457,7 @@ class Http
      */
     public static function sessionStart()
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             return \session_start();
         }
 
@@ -503,7 +506,7 @@ class Http
      */
     public static function sessionWriteClose()
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             \session_write_close();
             return true;
         }
@@ -524,7 +527,7 @@ class Http
      */
     public static function end($msg = '')
     {
-        if (PHP_SAPI !== 'cli') {
+        if (NO_CLI) {
             exit($msg);
         }
         if ($msg) {
@@ -719,3 +722,5 @@ class HttpCache
 }
 
 HttpCache::init();
+
+define('NO_CLI', \PHP_SAPI !== 'cli');

+ 8 - 8
Worker.php

@@ -549,8 +549,8 @@ class Worker
     protected static function checkSapiEnv()
     {
         // Only for cli.
-        if (PHP_SAPI !== 'cli') {
-            exit("only run in command line mode \n");
+        if (\PHP_SAPI !== 'cli') {
+            exit("Only run in command line mode \n");
         }
         if (DIRECTORY_SEPARATOR === '\\') {
             self::$_OS = OS_TYPE_WINDOWS;
@@ -2155,12 +2155,12 @@ class Worker
         $backtrace                = \debug_backtrace();
         $this->_autoloadRootPath = \dirname($backtrace[0]['file']);
 
-        if (static::$_OS === OS_TYPE_LINUX && version_compare(PHP_VERSION,'7.0.0', 'ge')) {
-            $php_uname = strtolower(php_uname('s'));
-            // If not Mac OS then turn reusePort on.
-            if ($php_uname !== 'darwin') {
-                $this->reusePort = true;
-            }
+        // Turn reusePort on.
+        if (static::$_OS === OS_TYPE_LINUX  // if linux
+                            && version_compare(PHP_VERSION,'7.0.0', 'ge') // if php >= 7.0.0
+                            && strtolower(php_uname('s')) !== 'darwin') { // if not Mac OS
+
+            $this->reusePort = true;
         }
 
         // Context for socket.