Преглед изворни кода

Improve performance with explicit namespaces

walkor пре 2 година
родитељ
комит
cd2392f65b

+ 22 - 0
src/Connection/AsyncTcpConnection.php

@@ -22,6 +22,28 @@ use stdClass;
 use Throwable;
 use Workerman\Timer;
 use Workerman\Worker;
+use function class_exists;
+use function explode;
+use function function_exists;
+use function is_resource;
+use function method_exists;
+use function microtime;
+use function parse_url;
+use function socket_import_stream;
+use function socket_set_option;
+use function stream_context_create;
+use function stream_set_blocking;
+use function stream_set_read_buffer;
+use function stream_socket_client;
+use function stream_socket_get_name;
+use function ucfirst;
+use const DIRECTORY_SEPARATOR;
+use const PHP_INT_MAX;
+use const SO_KEEPALIVE;
+use const SOL_SOCKET;
+use const SOL_TCP;
+use const STREAM_CLIENT_ASYNC_CONNECT;
+use const TCP_NODELAY;
 
 /**
  * AsyncTcpConnection.

+ 12 - 0
src/Connection/AsyncUdpConnection.php

@@ -20,6 +20,18 @@ use Exception;
 use Throwable;
 use Workerman\Protocols\ProtocolInterface;
 use Workerman\Worker;
+use function class_exists;
+use function explode;
+use function fclose;
+use function stream_context_create;
+use function stream_set_blocking;
+use function stream_socket_client;
+use function stream_socket_recvfrom;
+use function stream_socket_sendto;
+use function strlen;
+use function substr;
+use function ucfirst;
+use const STREAM_CLIENT_CONNECT;
 
 /**
  * AsyncUdpConnection.

+ 28 - 0
src/Connection/TcpConnection.php

@@ -23,6 +23,34 @@ use Workerman\Events\EventInterface;
 use Workerman\Protocols\Http\Request;
 use Workerman\Protocols\ProtocolInterface;
 use Workerman\Worker;
+use function ceil;
+use function count;
+use function fclose;
+use function feof;
+use function fread;
+use function function_exists;
+use function fwrite;
+use function is_object;
+use function is_resource;
+use function key;
+use function method_exists;
+use function posix_getpid;
+use function restore_error_handler;
+use function set_error_handler;
+use function stream_set_blocking;
+use function stream_set_read_buffer;
+use function stream_socket_enable_crypto;
+use function stream_socket_get_name;
+use function strlen;
+use function strrchr;
+use function strrpos;
+use function substr;
+use function var_export;
+use const PHP_INT_MAX;
+use const STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
+use const STREAM_CRYPTO_METHOD_SSLv23_SERVER;
+use const STREAM_CRYPTO_METHOD_SSLv2_CLIENT;
+use const STREAM_CRYPTO_METHOD_SSLv2_SERVER;
 
 /**
  * TcpConnection.

+ 7 - 0
src/Connection/UdpConnection.php

@@ -20,6 +20,13 @@ use JetBrains\PhpStorm\ArrayShape;
 use JetBrains\PhpStorm\Pure;
 use JsonSerializable;
 use Workerman\Protocols\ProtocolInterface;
+use function stream_socket_get_name;
+use function stream_socket_sendto;
+use function strlen;
+use function strrchr;
+use function strrpos;
+use function substr;
+use function trim;
 
 /**
  * UdpConnection.

+ 2 - 0
src/Events/Event.php

@@ -19,6 +19,8 @@ namespace Workerman\Events;
 use EventBase;
 use RuntimeException;
 use Throwable;
+use function class_exists;
+use function count;
 
 /**
  * libevent eventloop

+ 3 - 0
src/Events/Revolt.php

@@ -18,6 +18,9 @@ namespace Workerman\Events;
 
 use Revolt\EventLoop;
 use Revolt\EventLoop\Driver;
+use function count;
+use function function_exists;
+use function pcntl_signal;
 
 /**
  * Revolt eventloop

+ 5 - 0
src/Protocols/Frame.php

@@ -16,6 +16,11 @@ declare(strict_types=1);
 
 namespace Workerman\Protocols;
 
+use function pack;
+use function strlen;
+use function substr;
+use function unpack;
+
 /**
  * Frame Protocol.
  */

+ 19 - 0
src/Protocols/Http.php

@@ -20,6 +20,25 @@ use Throwable;
 use Workerman\Connection\TcpConnection;
 use Workerman\Protocols\Http\Request;
 use Workerman\Protocols\Http\Response;
+use function clearstatcache;
+use function count;
+use function explode;
+use function filesize;
+use function fopen;
+use function fread;
+use function fseek;
+use function ftell;
+use function in_array;
+use function ini_get;
+use function is_array;
+use function is_object;
+use function key;
+use function preg_match;
+use function strlen;
+use function strpos;
+use function strstr;
+use function substr;
+use function sys_get_temp_dir;
 
 /**
  * Class Http.

+ 3 - 0
src/Protocols/Http/Chunk.php

@@ -16,6 +16,9 @@ declare(strict_types=1);
 
 namespace Workerman\Protocols\Http;
 
+use function dechex;
+use function strlen;
+
 /**
  * Class Chunk
  * @package Workerman\Protocols\Http

+ 24 - 0
src/Protocols/Http/Request.php

@@ -20,6 +20,30 @@ use Exception;
 use RuntimeException;
 use Workerman\Connection\TcpConnection;
 use Workerman\Protocols\Http;
+use function array_walk_recursive;
+use function bin2hex;
+use function clearstatcache;
+use function count;
+use function explode;
+use function file_put_contents;
+use function is_file;
+use function json_decode;
+use function ltrim;
+use function microtime;
+use function pack;
+use function parse_str;
+use function parse_url;
+use function preg_match;
+use function preg_replace;
+use function strlen;
+use function strpos;
+use function strstr;
+use function strtolower;
+use function substr;
+use function tempnam;
+use function trim;
+use function unlink;
+use function urlencode;
 
 /**
  * Class Request

+ 15 - 0
src/Protocols/Http/Response.php

@@ -16,6 +16,21 @@ declare(strict_types=1);
 
 namespace Workerman\Protocols\Http;
 
+use function array_merge_recursive;
+use function explode;
+use function file;
+use function filemtime;
+use function gmdate;
+use function is_array;
+use function is_file;
+use function pathinfo;
+use function preg_match;
+use function rawurlencode;
+use function strlen;
+use function substr;
+use const FILE_IGNORE_NEW_LINES;
+use const FILE_SKIP_EMPTY_LINES;
+
 /**
  * Class Response
  * @package Workerman\Protocols\Http

+ 2 - 0
src/Protocols/Http/ServerSentEvents.php

@@ -16,6 +16,8 @@ declare(strict_types=1);
 
 namespace Workerman\Protocols\Http;
 
+use function str_replace;
+
 /**
  * Class ServerSentEvents
  * @package Workerman\Protocols\Http

+ 9 - 0
src/Protocols/Http/Session.php

@@ -21,6 +21,15 @@ use JetBrains\PhpStorm\ArrayShape;
 use RuntimeException;
 use Workerman\Protocols\Http\Session\FileSessionHandler;
 use Workerman\Protocols\Http\Session\SessionHandlerInterface;
+use function array_key_exists;
+use function ini_get;
+use function is_array;
+use function is_scalar;
+use function preg_match;
+use function random_int;
+use function serialize;
+use function session_get_cookie_params;
+use function unserialize;
 
 /**
  * Class Session

+ 15 - 0
src/Protocols/Http/Session/FileSessionHandler.php

@@ -18,6 +18,21 @@ namespace Workerman\Protocols\Http\Session;
 
 use Exception;
 use Workerman\Protocols\Http\Session;
+use function clearstatcache;
+use function file_get_contents;
+use function file_put_contents;
+use function filemtime;
+use function glob;
+use function is_dir;
+use function is_file;
+use function mkdir;
+use function rename;
+use function session_save_path;
+use function strlen;
+use function sys_get_temp_dir;
+use function time;
+use function touch;
+use function unlink;
 
 /**
  * Class FileSessionHandler

+ 3 - 0
src/Protocols/Text.php

@@ -17,6 +17,9 @@ declare(strict_types=1);
 namespace Workerman\Protocols;
 
 use Workerman\Connection\ConnectionInterface;
+use function rtrim;
+use function strlen;
+use function strpos;
 
 /**
  * Text Protocol.

+ 15 - 0
src/Protocols/Websocket.php

@@ -22,6 +22,21 @@ use Workerman\Connection\ConnectionInterface;
 use Workerman\Connection\TcpConnection;
 use Workerman\Protocols\Http\Request;
 use Workerman\Worker;
+use function base64_encode;
+use function chr;
+use function floor;
+use function gettype;
+use function is_scalar;
+use function ord;
+use function pack;
+use function preg_match;
+use function sha1;
+use function str_repeat;
+use function stripos;
+use function strlen;
+use function strpos;
+use function substr;
+use function unpack;
 
 /**
  * WebSocket protocol.

+ 16 - 0
src/Protocols/Ws.php

@@ -22,6 +22,22 @@ use Workerman\Connection\AsyncTcpConnection;
 use Workerman\Connection\ConnectionInterface;
 use Workerman\Timer;
 use Workerman\Worker;
+use function base64_encode;
+use function bin2hex;
+use function floor;
+use function gettype;
+use function is_array;
+use function is_scalar;
+use function ord;
+use function pack;
+use function preg_match;
+use function sha1;
+use function str_repeat;
+use function strlen;
+use function strpos;
+use function substr;
+use function trim;
+use function unpack;
 
 /**
  * Websocket protocol for client.

+ 7 - 0
src/Timer.php

@@ -22,6 +22,13 @@ use Workerman\Events\EventInterface;
 use Workerman\Events\Revolt;
 use Workerman\Events\Swoole;
 use Workerman\Events\Swow;
+use function function_exists;
+use function is_callable;
+use function pcntl_alarm;
+use function pcntl_signal;
+use function time;
+use const PHP_INT_MAX;
+use const SIGALRM;
 
 /**
  * Timer.

+ 21 - 14
src/Worker.php

@@ -18,6 +18,7 @@ namespace Workerman;
 
 use AllowDynamicProperties;
 use Exception;
+use Revolt\EventLoop;
 use RuntimeException;
 use stdClass;
 use Throwable;
@@ -29,6 +30,12 @@ use Workerman\Events\EventInterface;
 use Workerman\Events\Revolt;
 use Workerman\Events\Select;
 use Workerman\Protocols\ProtocolInterface;
+use function method_exists;
+use function restore_error_handler;
+use function set_error_handler;
+use function stream_socket_accept;
+use function stream_socket_recvfrom;
+use function substr;
 
 /**
  * Worker class
@@ -647,7 +654,7 @@ class Worker
      */
     protected static function lock(int $flag = LOCK_EX): void
     {
-		global $argv;
+        global $argv;
         static $fd;
         if (DIRECTORY_SEPARATOR !== '/' || empty($argv)) {
             return;
@@ -883,7 +890,7 @@ class Worker
      */
     protected static function parseCommand(): void
     {
-		global $argv;
+        global $argv;
 
         if (DIRECTORY_SEPARATOR !== '/' || empty($argv)) {
             return;
@@ -1297,7 +1304,7 @@ class Worker
      */
     protected static function saveMasterPid(): void
     {
-		global $argv;
+        global $argv;
         if (DIRECTORY_SEPARATOR !== '/' || empty($argv)) {
             return;
         }
@@ -1319,7 +1326,7 @@ class Worker
             return static::$eventLoopClass;
         }
 
-        if (class_exists(\Revolt\EventLoop::class)) {
+        if (class_exists(EventLoop::class)) {
             static::$eventLoopClass = Revolt::class;
             return static::$eventLoopClass;
         }
@@ -1495,7 +1502,7 @@ class Worker
         );
 
         $pipes = array();
-        $process = proc_open('"' . PHP_BINARY . '" '  . " \"$startFile\" -q", $descriptor_spec, $pipes, null, null, ['bypass_shell' => true]);
+        $process = proc_open('"' . PHP_BINARY . '" ' . " \"$startFile\" -q", $descriptor_spec, $pipes, null, null, ['bypass_shell' => true]);
 
         if (empty(static::$globalEvent)) {
             static::$globalEvent = new Select();
@@ -2157,14 +2164,14 @@ class Worker
         return self::ERROR_TYPE[$type] ?? '';
     }
 
-	/**
-	 * Log.
-	 *
-	 * @param mixed $msg
-	 * @param bool $decorated
-	 * @return void
-	 */
-    public static function log(mixed $msg,bool $decorated = false): void
+    /**
+     * Log.
+     *
+     * @param mixed $msg
+     * @param bool $decorated
+     * @return void
+     */
+    public static function log(mixed $msg, bool $decorated = false): void
     {
         $msg = $msg . "\n";
         if (!static::$daemonize) {
@@ -2477,7 +2484,7 @@ class Worker
             }
         }
         // Remove worker.
-        foreach(static::$workers as $key => $one_worker) {
+        foreach (static::$workers as $key => $one_worker) {
             if ($one_worker->workerId === $this->workerId) {
                 unset(static::$workers[$key]);
             }