Parcourir la source

declare(strict_types=1)

walkor il y a 2 ans
Parent
commit
9d7c4ed308

+ 2 - 0
src/Connection/AsyncTcpConnection.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Connection;
 
 use Exception;

+ 3 - 1
src/Connection/AsyncUdpConnection.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Connection;
 
 use Exception;
@@ -193,7 +195,7 @@ class AsyncUdpConnection extends UdpConnection
         }
 
         if (!$this->socket) {
-            Worker::safeEcho(new Exception($errmsg));
+            Worker::safeEcho((string)(new Exception($errmsg)));
             $this->eventLoop = null;
             return;
         }

+ 2 - 0
src/Connection/ConnectionInterface.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Connection;
 
 use Throwable;

+ 2 - 0
src/Connection/UdpConnection.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Connection;
 
 use JetBrains\PhpStorm\ArrayShape;

+ 2 - 0
src/Events/Ev.php

@@ -11,6 +11,8 @@
  * @license http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use EvIo;

+ 6 - 4
src/Events/Event.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use EventBase;
@@ -106,8 +108,8 @@ class Event implements EventInterface
                 $this->error($e);
             }
         });
-        if (!$event || !$event->addTimer($delay)) {
-            return false;
+        if (!$event->addTimer($delay)) {
+            throw new \RuntimeException("Event::addTimer($delay) failed");
         }
         $this->eventTimer[$timerId] = $event;
         return $timerId;
@@ -148,8 +150,8 @@ class Event implements EventInterface
                 $this->error($e);
             }
         });
-        if (!$event || !$event->addTimer($interval)) {
-            return false;
+        if (!$event->addTimer($interval)) {
+            throw new \RuntimeException("Event::addTimer($interval) failed");
         }
         $this->eventTimer[$timerId] = $event;
         return $timerId;

+ 2 - 0
src/Events/Revolt.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use Revolt\EventLoop;

+ 2 - 0
src/Events/Select.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use SplPriorityQueue;

+ 2 - 0
src/Events/Swoole.php

@@ -11,6 +11,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use Swoole\Event;

+ 2 - 0
src/Events/Swow.php

@@ -1,5 +1,7 @@
 <?php
 
+declare(strict_types=1);
+
 namespace Workerman\Events;
 
 use RuntimeException;

+ 2 - 0
src/Protocols/Frame.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use function pack;

+ 2 - 0
src/Protocols/Http.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use Throwable;

+ 2 - 1
src/Protocols/Http/Chunk.php

@@ -12,8 +12,9 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
-namespace Workerman\Protocols\Http;
+declare(strict_types=1);
 
+namespace Workerman\Protocols\Http;
 
 use function dechex;
 use function strlen;

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

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http;
 
 use Exception;

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

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http;
 
 use function array_merge_recursive;

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

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http;
 
 use function str_replace;

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

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http;
 
 use Exception;

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

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http\Session;
 
 use Workerman\Protocols\Http\Session;

+ 2 - 0
src/Protocols/Http/Session/RedisClusterSessionHandler.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http\Session;
 
 use Redis;

+ 2 - 0
src/Protocols/Http/Session/RedisSessionHandler.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http\Session;
 
 use Redis;

+ 2 - 0
src/Protocols/Http/Session/SessionHandlerInterface.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols\Http\Session;
 
 interface SessionHandlerInterface

+ 2 - 0
src/Protocols/ProtocolInterface.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use Workerman\Connection\ConnectionInterface;

+ 2 - 0
src/Protocols/Text.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use Workerman\Connection\ConnectionInterface;

+ 2 - 0
src/Protocols/Websocket.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use Exception;

+ 2 - 0
src/Protocols/Ws.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman\Protocols;
 
 use Exception;

+ 4 - 7
src/Timer.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman;
 
 use Exception;
@@ -129,12 +131,7 @@ class Timer
 
         // If not workerman runtime just return.
         if (!Worker::getAllWorkers()) {
-            return false;
-        }
-
-        if (!is_callable($func)) {
-            Worker::safeEcho(new Exception("not callable"));
-            return false;
+            throw new RuntimeException('Timer can only be used in workerman running environment');
         }
 
         if (empty(self::$tasks)) {
@@ -204,7 +201,7 @@ class Timer
                     try {
                         $taskFunc(...$taskArgs);
                     } catch (Throwable $e) {
-                        Worker::safeEcho($e);
+                        Worker::safeEcho((string)$e);
                     }
                     if ($persistent && !empty(self::$status[$index])) {
                         $newRunTime = time() + $timeInterval;

+ 10 - 8
src/Worker.php

@@ -12,6 +12,8 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
+declare(strict_types=1);
+
 namespace Workerman;
 
 use Exception;
@@ -699,7 +701,7 @@ class Worker
             // Get column mapping for UI
             foreach (static::getUiColumns() as $columnName => $prop) {
                 !isset($worker->$prop) && !isset($worker->context->$prop) && $worker->context->$prop = 'NNNN';
-                $propLength = \strlen($worker->$prop ?? $worker->context->$prop);
+                $propLength = \strlen((string)($worker->$prop ?? $worker->context->$prop));
                 $key = 'max' . \ucfirst(\strtolower($columnName)) . 'NameLength';
                 static::$$key = \max(static::$$key, $propLength);
             }
@@ -809,7 +811,7 @@ class Worker
         foreach (static::$workers as $worker) {
             $content = '';
             foreach (static::getUiColumns() as $columnName => $prop) {
-                $propValue = $worker->$prop ?? $worker->context->$prop;
+                $propValue = (string)($worker->$prop ?? $worker->context->$prop);
                 $key = 'max' . \ucfirst(\strtolower($columnName)) . 'NameLength';
                 \preg_match_all("/(<n>|<\/n>|<w>|<\/w>|<g>|<\/g>)/is", $propValue, $matches);
                 $placeHolderLength = !empty($matches) ? \strlen(\implode('', $matches[0])) : 0;
@@ -1120,8 +1122,8 @@ class Worker
         $statusStr .= "Summary\t" . \str_pad($totalMemory . 'M', 7) . " "
             . \str_pad('-', $maxLen1) . " "
             . \str_pad('-', $maxLen2) . " "
-            . \str_pad($totalConnections, 11) . " " . \str_pad($totalFails, 9) . " "
-            . \str_pad($totalTimers, 7) . " " . \str_pad($totalRequests, 13) . " "
+            . \str_pad((string)$totalConnections, 11) . " " . \str_pad((string)$totalFails, 9) . " "
+            . \str_pad((string)$totalTimers, 7) . " " . \str_pad((string)$totalRequests, 13) . " "
             . \str_pad($totalQps, 6) . " [Summary] \n";
         return $statusStr;
     }
@@ -1436,7 +1438,7 @@ class Worker
             \restore_error_handler();
 
             // Display UI.
-            static::safeEcho(\str_pad($worker->name, 21) . \str_pad($worker->getSocketName(), 36) . \str_pad($worker->count, 10) . "[ok]\n");
+            static::safeEcho(\str_pad($worker->name, 21) . \str_pad($worker->getSocketName(), 36) . \str_pad((string)$worker->count, 10) . "[ok]\n");
             $worker->listen();
             $worker->run();
             static::$globalEvent->run();
@@ -2002,7 +2004,7 @@ class Worker
                     }
                 } else {
                     \file_put_contents(static::$statisticsFile,
-                        \str_pad($worker->name, static::$maxWorkerNameLength) . " " . \str_pad(0, 16) . " 0\n",
+                        \str_pad($worker->name, static::$maxWorkerNameLength) . " " . \str_pad('0', 16) . " 0\n",
                         \FILE_APPEND);
                 }
             }
@@ -2036,7 +2038,7 @@ class Worker
             . " ";
         $workerStatusStr .= \str_pad(ConnectionInterface::$statistics['connection_count'], 11)
             . " " . \str_pad(ConnectionInterface::$statistics['send_fail'], 9)
-            . " " . \str_pad(static::$globalEvent->getTimerCount(), 7)
+            . " " . \str_pad((string)static::$globalEvent->getTimerCount(), 7)
             . " " . \str_pad(ConnectionInterface::$statistics['total_request'], 13) . "\n";
         \file_put_contents(static::$statisticsFile, $workerStatusStr, \FILE_APPEND);
     }
@@ -2108,7 +2110,7 @@ class Worker
             if (\strlen($workerName) > 14) {
                 $workerName = \substr($workerName, 0, 12) . '..';
             }
-            $str .= \str_pad($pid, 9) . \str_pad($workerName, 16) . \str_pad($id, 10) . \str_pad($transport, 8)
+            $str .= \str_pad((string)$pid, 9) . \str_pad($workerName, 16) . \str_pad((string)$id, 10) . \str_pad($transport, 8)
                 . \str_pad($protocol, 16) . \str_pad($ipv4, 7) . \str_pad($ipv6, 7) . \str_pad($recvQ, 13)
                 . \str_pad($sendQ, 13) . \str_pad($bytesRead, 13) . \str_pad($bytesWritten, 13) . ' '
                 . \str_pad($state, 14) . ' ' . \str_pad($localAddress, 22) . ' ' . \str_pad($remoteAddress, 22) . "\n";