From df90d697878a38190a1163ccf07f82ec69d45287 Mon Sep 17 00:00:00 2001 From: n0nag0n Date: Sat, 27 Jan 2024 16:19:02 -0700 Subject: [PATCH] so many phpcs fixes. No more, no more! --- flight/Engine.php | 3 +- flight/Flight.php | 6 +-- flight/core/Dispatcher.php | 2 + flight/core/Loader.php | 13 +++++- flight/database/PdoWrapper.php | 75 ++++++++++++++-------------------- flight/net/Request.php | 12 ++++-- flight/net/Response.php | 13 ++++-- flight/net/Route.php | 27 ++++++++---- flight/net/Router.php | 5 ++- flight/template/View.php | 9 +++- flight/util/Collection.php | 1 + phpcs.xml | 6 +++ tests/FlightTest.php | 1 - tests/PdoWrapperTest.php | 4 +- tests/ViewTest.php | 1 - 15 files changed, 103 insertions(+), 75 deletions(-) diff --git a/flight/Engine.php b/flight/Engine.php index 71ae8a5..32a1a70 100644 --- a/flight/Engine.php +++ b/flight/Engine.php @@ -57,8 +57,7 @@ use flight\net\Route; * @method void redirect(string $url, int $code = 303) Redirects the current request to another URL. * @method void json(mixed $data, int $code = 200, bool $encode = true, string $charset = 'utf-8', int $option = 0) * Sends a JSON response. - * @method void jsonp(mixed $data, string $param = 'jsonp', int $code = 200, - * bool $encode = true, string $charset = 'utf-8', int $option = 0) Sends a JSONP response. + * @method void jsonp(mixed $data, string $param = 'jsonp', int $code = 200, bool $encode = true, string $charset = 'utf-8', int $option = 0) Sends a JSONP response. * * # HTTP caching * @method void etag($id, string $type = 'strong') Handles ETag HTTP caching. diff --git a/flight/Flight.php b/flight/Flight.php index f30fd32..1f1d2ae 100644 --- a/flight/Flight.php +++ b/flight/Flight.php @@ -56,10 +56,8 @@ use flight\net\Route; * @method static Request request() Returns Request instance. * @method static Response response() Returns Response instance. * @method static void redirect($url, $code = 303) Redirects to another URL. - * @method static void json($data, $code = 200, $encode = true, $charset = "utf8", - * $encodeOption = 0, $encodeDepth = 512) Sends a JSON response. - * @method static void jsonp($data, $param = 'jsonp', $code = 200, $encode = true, - * $charset = "utf8", $encodeOption = 0, $encodeDepth = 512) Sends a JSONP response. + * @method static void json($data, $code = 200, $encode = true, $charset = "utf8", $encodeOption = 0, $encodeDepth = 512) Sends a JSON response. + * @method static void jsonp($data, $param = 'jsonp', $code = 200, $encode = true, $charset = "utf8", $encodeOption = 0, $encodeDepth = 512) Sends a JSONP response. * @method static void error($exception) Sends an HTTP 500 response. * @method static void notFound() Sends an HTTP 404 response. * diff --git a/flight/core/Dispatcher.php b/flight/core/Dispatcher.php index 1f55269..ff9c9ec 100644 --- a/flight/core/Dispatcher.php +++ b/flight/core/Dispatcher.php @@ -20,12 +20,14 @@ class Dispatcher { /** * Mapped events. + * * @var array */ protected array $events = []; /** * Method filters. + * * @var array>> */ protected array $filters = []; diff --git a/flight/core/Loader.php b/flight/core/Loader.php index 046f8d8..bf83e3f 100644 --- a/flight/core/Loader.php +++ b/flight/core/Loader.php @@ -20,30 +20,36 @@ class Loader { /** * Registered classes. + * * @var array, ?callable}> $classes */ protected array $classes = []; /** * Class instances. + * * @var array */ protected array $instances = []; /** * Autoload directories. + * * @var array */ protected static array $dirs = []; /** * Registers a class. - * @template T of object * * @param string $name Registry name * @param class-string|Closure(): T $class Class name or function to instantiate class * @param array $params Class initialization parameters * @param ?callable(T $instance): void $callback $callback Function to call after object instantiation + * + * @template T of object + * + * @return void */ public function register(string $name, $class, array $params = [], ?callable $callback = null): void { @@ -116,11 +122,12 @@ class Loader /** * Gets a new instance of a class. - * @template T of object * * @param class-string|Closure(): class-string $class Class name or callback function to instantiate class * @param array $params Class initialization parameters * + * @template T of object + * * @throws Exception * * @return T Class instance @@ -135,6 +142,8 @@ class Loader } /** + * Gets a registered callable + * * @param string $name Registry name * * @return mixed Class information or null if not registered diff --git a/flight/database/PdoWrapper.php b/flight/database/PdoWrapper.php index 87c930e..fd982a7 100644 --- a/flight/database/PdoWrapper.php +++ b/flight/database/PdoWrapper.php @@ -9,19 +9,6 @@ use PDOStatement; class PdoWrapper extends PDO { - /** - * How you create the connection for the database - * - * @param string $dsn - Ex: 'mysql:host=localhost;port=3306;dbname=testdb;charset=utf8mb4' - * @param string $username - Ex: 'root' - * @param string $password - Ex: 'password' - * @param array $options - PDO options you can pass in - */ - public function __construct(string $dsn, ?string $username = null, ?string $password = null, array $options = []) - { - parent::__construct($dsn, $username, $password, $options); - } - /** * Use this for INSERTS, UPDATES, or if you plan on using a SELECT in a while loop * @@ -35,6 +22,7 @@ class PdoWrapper extends PDO * * @param string $sql - Ex: "SELECT * FROM table WHERE something = ?" * @param array $params - Ex: [ $something ] + * * @return PDOStatement */ public function runQuery(string $sql, array $params = []): PDOStatement @@ -54,6 +42,7 @@ class PdoWrapper extends PDO * * @param string $sql - Ex: "SELECT id FROM table WHERE something = ?" * @param array $params - Ex: [ $something ] + * * @return mixed */ public function fetchField(string $sql, array $params = []) @@ -69,6 +58,7 @@ class PdoWrapper extends PDO * * @param string $sql - Ex: "SELECT * FROM table WHERE something = ?" * @param array $params - Ex: [ $something ] + * * @return array */ public function fetchRow(string $sql, array $params = []): array @@ -88,6 +78,7 @@ class PdoWrapper extends PDO * * @param string $sql - Ex: "SELECT * FROM table WHERE something = ?" * @param array $params - Ex: [ $something ] + * * @return array> */ public function fetchAll(string $sql, array $params = []): array @@ -109,48 +100,42 @@ class PdoWrapper extends PDO * * @param string $sql the sql statement * @param array $params the params for the sql statement + * * @return array> */ protected function processInStatementSql(string $sql, array $params = []): array { - /* Handle "IN(?)". This is to be used with a comma delimited string, but can also be used with an array. - Remove the spaces in variations of "IN ( ? )" where the space after IN is optional, and any number of - spaces before and after the question mark is optional. - Then loop through each "IN(?)" in the query and replace the single question mark with the correct - number of question marks. */ - $sql = preg_replace('/IN\s*\(\s*\?\s*\)/i', 'IN(?)', $sql); - $current_index = 0; - while (($current_index = strpos($sql, 'IN(?)', $current_index)) !== false) { - $preceeding_count = substr_count($sql, '?', 0, $current_index - 1); - - $param = $params[$preceeding_count]; - $question_marks = '?'; - - // If param is a string, explode it and replace the question mark with the correct number of question marks - if (is_string($param) || is_array($param)) { - $params_to_use = $param; - if (is_string($param)) { - $params_to_use = explode(',', $param); - } + // Replace "IN(?)" with "IN(?,?,?)" + $sql = preg_replace('/IN\s*\(\s*\?\s*\)/i', 'IN(?)', $sql); - foreach ($params_to_use as $key => $value) { - if (is_string($value)) { - $params_to_use[$key] = trim($value); - } - } + $current_index = 0; + while (($current_index = strpos($sql, 'IN(?)', $current_index)) !== false) { + $preceeding_count = substr_count($sql, '?', 0, $current_index - 1); - // Replace the single question mark with the appropriate number of question marks. - $question_marks = join(',', array_fill(0, count($params_to_use), '?')); - $sql = substr_replace($sql, $question_marks, $current_index + 3, 1); + $param = $params[$preceeding_count]; + $question_marks = '?'; - // Insert the new params into the params array. - array_splice($params, $preceeding_count, 1, $params_to_use); + if (is_string($param) || is_array($param)) { + $params_to_use = $param; + if (is_string($param)) { + $params_to_use = explode(',', $param); } - // Increment by the length of the question marks and accounting for the length of "IN()" - $current_index += strlen($question_marks) + 4; + foreach ($params_to_use as $key => $value) { + if (is_string($value)) { + $params_to_use[$key] = trim($value); + } + } + + $question_marks = join(',', array_fill(0, count($params_to_use), '?')); + $sql = substr_replace($sql, $question_marks, $current_index + 3, 1); + + array_splice($params, $preceeding_count, 1, $params_to_use); } - return [ 'sql' => $sql, 'params' => $params ]; + $current_index += strlen($question_marks) + 4; + } + + return [ 'sql' => $sql, 'params' => $params ]; } } diff --git a/flight/net/Request.php b/flight/net/Request.php index 6d90a2c..7fffd75 100644 --- a/flight/net/Request.php +++ b/flight/net/Request.php @@ -155,7 +155,7 @@ class Request 'scheme' => self::getScheme(), 'user_agent' => self::getVar('HTTP_USER_AGENT'), 'type' => self::getVar('CONTENT_TYPE'), - 'length' => (int) self::getVar('CONTENT_LENGTH', 0), + 'length' => intval(self::getVar('CONTENT_LENGTH', 0)), 'query' => new Collection($_GET), 'data' => new Collection($_POST), 'cookies' => new Collection($_COOKIE), @@ -174,7 +174,8 @@ class Request * Initialize request properties. * * @param array $properties Array of request properties - * @return $this + * + * @return self */ public function init(array $properties = []): self { @@ -303,6 +304,7 @@ class Request * * @param string $header Header name. Can be caps, lowercase, or mixed. * @param string $default Default value if the header does not exist + * * @return string */ public static function getHeader(string $header, $default = ''): string @@ -348,7 +350,11 @@ class Request return $params; } - /** @return 'http'|'https' */ + /** + * Gets the URL Scheme + * + * @return string 'http'|'https' + */ public static function getScheme(): string { if ( diff --git a/flight/net/Response.php b/flight/net/Response.php index 7bef496..55e2605 100644 --- a/flight/net/Response.php +++ b/flight/net/Response.php @@ -22,7 +22,9 @@ class Response public bool $content_length = true; /** - * @var array HTTP status codes + * HTTP status codes + * + * @var array $codes */ public static array $codes = [ 100 => 'Continue', @@ -100,7 +102,9 @@ class Response protected int $status = 200; /** - * @var array> HTTP headers + * HTTP response headers + * + * @var array> $headers */ protected array $headers = []; @@ -161,6 +165,7 @@ class Response /** * Returns the headers from the response. + * * @return array> */ public function headers(): array @@ -289,7 +294,9 @@ class Response * the same type. By default it will replace, but if you pass in false as the * second argument you can force multiple headers of the same type. * @param int $response_code The response code to send - * @return $this + * + * @return self + * * @codeCoverageIgnore */ public function setRealHeader(string $header_string, bool $replace = true, int $response_code = 0): self diff --git a/flight/net/Route.php b/flight/net/Route.php index bdf5827..27a4e70 100644 --- a/flight/net/Route.php +++ b/flight/net/Route.php @@ -20,17 +20,23 @@ class Route public string $pattern; /** - * @var mixed Callback function + * Callback function + * + * @var mixed */ public $callback; /** - * @var array HTTP methods + * HTTP methods + * + * @var array */ public array $methods = []; /** - * @var array Route parameters + * Route parameters + * + * @var array */ public array $params = []; @@ -55,7 +61,9 @@ class Route public string $alias = ''; /** - * @var array The middleware to be applied to the route + * The middleware to be applied to the route + * + * @var array */ public array $middleware = []; @@ -95,13 +103,13 @@ class Route $last_char = substr($this->pattern, -1); // Get splat - if ('*' === $last_char) { + if ($last_char === '*') { $n = 0; $len = \strlen($url); $count = substr_count($this->pattern, '/'); for ($i = 0; $i < $len; $i++) { - if ('/' === $url[$i]) { + if ($url[$i] === '/') { $n++; } if ($n === $count) { @@ -109,7 +117,7 @@ class Route } } - $this->splat = (string) substr($url, $i + 1); + $this->splat = strval(substr($url, $i + 1)); } // Build the regex for matching @@ -202,8 +210,9 @@ class Route /** * Sets the route middleware * - * @param array|callable $middleware - * @return $this + * @param array|callable $middleware + * + * @return self */ public function addMiddleware($middleware): self { diff --git a/flight/net/Router.php b/flight/net/Router.php index 6f6300a..485faa2 100644 --- a/flight/net/Router.php +++ b/flight/net/Router.php @@ -21,8 +21,11 @@ class Router * Case sensitive matching. */ public bool $case_sensitive = false; + /** - * @var array Mapped routes. + * Mapped routes. + * + * @var array $routes */ protected array $routes = []; diff --git a/flight/template/View.php b/flight/template/View.php index dfd29ee..d1bc07f 100644 --- a/flight/template/View.php +++ b/flight/template/View.php @@ -20,7 +20,11 @@ class View /** File extension. */ public string $extension = '.php'; - /** @var array View variables. */ + /** + * View variables. + * + * @var array $vars + */ protected array $vars = []; /** Template file. */ @@ -51,7 +55,8 @@ class View * * @param string|iterable $key * @param mixed $value Value - * @return $this + * + * @return self */ public function set($key, $value = null): self { diff --git a/flight/util/Collection.php b/flight/util/Collection.php index 0ede58a..6ffe0b5 100644 --- a/flight/util/Collection.php +++ b/flight/util/Collection.php @@ -22,6 +22,7 @@ class Collection implements ArrayAccess, Iterator, Countable, JsonSerializable { /** * Collection data. + * * @var array */ private array $data; diff --git a/phpcs.xml b/phpcs.xml index b5bccbe..4cdfb52 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -29,8 +29,14 @@ + + + + flight/ tests/ + tests/views/* + tests/views/ diff --git a/tests/FlightTest.php b/tests/FlightTest.php index 2c964ff..2018d53 100644 --- a/tests/FlightTest.php +++ b/tests/FlightTest.php @@ -6,7 +6,6 @@ namespace tests; use Exception; use Flight; - use flight\Engine; use flight\net\Request; use flight\net\Response; diff --git a/tests/PdoWrapperTest.php b/tests/PdoWrapperTest.php index 53ff8e0..324c47b 100644 --- a/tests/PdoWrapperTest.php +++ b/tests/PdoWrapperTest.php @@ -98,7 +98,7 @@ class PdoWrapperTest extends TestCase public function testFetchAllWithInInt() { - $rows = $this->pdo_wrapper->fetchAll('SELECT id FROM test WHERE id IN(?)', [ [1,2 ]]); + $rows = $this->pdo_wrapper->fetchAll('SELECT id FROM test WHERE id IN(? )', [ [1,2 ]]); $this->assertEquals(2, count($rows)); } @@ -110,7 +110,7 @@ class PdoWrapperTest extends TestCase public function testFetchAllWithInStringCommas() { - $rows = $this->pdo_wrapper->fetchAll('SELECT id FROM test WHERE id > ? AND name IN(?)', [ 0, 'one,two' ]); + $rows = $this->pdo_wrapper->fetchAll('SELECT id FROM test WHERE id > ? AND name IN( ?) ', [ 0, 'one,two' ]); $this->assertEquals(2, count($rows)); } } diff --git a/tests/ViewTest.php b/tests/ViewTest.php index c29b051..fcb06c0 100644 --- a/tests/ViewTest.php +++ b/tests/ViewTest.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace tests; use Exception; - use flight\template\View; use PHPUnit\Framework\TestCase;