From 85881730792089af27a1daace59b612a95d46a37 Mon Sep 17 00:00:00 2001 From: "origami11@yandex.ru" Date: Wed, 29 Oct 2025 13:52:15 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20=D0=90=D0=BD=D0=BD=D0=BE=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=BA=20=D1=82=D0=B8=D0=BF=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Database/StatementIterator.php | 1 + src/Filter/FilterInterface.php | 4 ++++ src/Filter/Login.php | 35 ++++++++++++++++++------------ src/Functions.php | 25 +++++++++++++++------ src/HttpRequest.php | 4 ++++ src/Layout/Blank.php | 3 +++ src/Primitive.php | 14 +++++++++--- src/Registry.php | 11 ++++++++-- src/Role/User.php | 10 ++++++++- 9 files changed, 80 insertions(+), 27 deletions(-) diff --git a/src/Database/StatementIterator.php b/src/Database/StatementIterator.php index 8d0945b..b3c4152 100644 --- a/src/Database/StatementIterator.php +++ b/src/Database/StatementIterator.php @@ -6,6 +6,7 @@ use PDO; class StatementIterator implements \Iterator { + /** @var PDOStatement */ private $result; /** @var int */ private $pos = 0; diff --git a/src/Filter/FilterInterface.php b/src/Filter/FilterInterface.php index 075b80f..aee34a9 100644 --- a/src/Filter/FilterInterface.php +++ b/src/Filter/FilterInterface.php @@ -4,5 +4,9 @@ namespace ctiso\Filter; use ctiso\HttpRequest; interface FilterInterface { + /** + * @param HttpRequest $request + * @return mixed + */ function execute(HttpRequest $request); } \ No newline at end of file diff --git a/src/Filter/Login.php b/src/Filter/Login.php index d8b6fd1..d023db0 100644 --- a/src/Filter/Login.php +++ b/src/Filter/Login.php @@ -2,31 +2,34 @@ /** * Фильтр для проверки авторизации - * - * action: login(password, login) - * action: logout() */ +namespace ctiso\Filter; + +use ctiso\Filter\Filter; +use ctiso\HttpRequest; +use ctiso\Settings; +use ctiso\Registry; +use ctiso\Database; +use ctiso\Role\User; +use ctiso\Collection; +use ctiso\Path; +use ctiso\Database\PDOStatement; + // В класс авторизации передавать обьект для управления пользователем // Вынести в отдельный файл -namespace ctiso\Filter; -use ctiso\Filter\Filter, - ctiso\HttpRequest, - ctiso\Settings, - ctiso\Registry, - ctiso\Database, - ctiso\Role\User, - ctiso\Collection, - ctiso\Path; - class Login extends Filter { const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#'; const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign'; const AUTH_MAX_ATTEMPT = 10; const AUTH_LAST_ATTEMPT_TIMER = 600; + /** @var string */ public $mode = 'ajax'; + /** @var PDOStatement */ public $user; + /** @var User */ public $role; + /** @var Registry */ public $config; function __construct($processor, User $role, Registry $config) { @@ -125,11 +128,15 @@ class Login extends Filter return false; } + /** + * Вход в систему + * @param PDOStatement $result + */ private function enter($result): void { $this->user = $result; $random = rand(0, 1024 * 1024); - $this->role->setSID($random, $result); + $this->role->setSID((string)$random, $result); $_SESSION["group"] = $result->getInt('access'); $_SESSION["access"] = $result->getInt('id_user'); // id_user diff --git a/src/Functions.php b/src/Functions.php index 6921de5..812175f 100644 --- a/src/Functions.php +++ b/src/Functions.php @@ -19,8 +19,12 @@ class right { $this->params = $params; } - function apply() { - $params = func_get_args(); + /** + * Применение функции + * @param mixed ...$params + * @return mixed + */ + function apply(...$params) { array_splice($params, count($params), 0, $this->params); return call_user_func_array($this->fn, $params); } @@ -40,8 +44,12 @@ class left { $this->params = $params; } - function apply() { - $params = func_get_args(); + /** + * Применение функции + * @param mixed ...$params + * @return mixed + */ + function apply(...$params) { array_splice ($params, 0, 0, $this->params); return call_user_func_array ($this->fn, $params); } @@ -171,7 +179,7 @@ class Functions { /** * @deprecated - * @param array $value + * @param array $value * @param string $name * * @return mixed @@ -182,6 +190,9 @@ class Functions { /** * @deprecated + * @param mixed $value + * + * @return mixed */ static function identity($value) { return $value; @@ -191,7 +202,7 @@ class Functions { * @deprecated use fn and <=> operator * @param array $a * @param array $b - * @param $key + * @param string|int $key * * @return int */ @@ -206,7 +217,7 @@ class Functions { * @deprecated use fn and <=> operator * @param array $a * @param array $b - * @param $key + * @param string|int $key * * @return int */ diff --git a/src/HttpRequest.php b/src/HttpRequest.php index 3df3b05..da5c547 100644 --- a/src/HttpRequest.php +++ b/src/HttpRequest.php @@ -80,6 +80,10 @@ class HttpRequest extends Collection parent::get('data')->set($key, $value); } + /** + * @param string $key + * @return array + */ function export(string $key = 'data') { return parent::get($key)->export(); diff --git a/src/Layout/Blank.php b/src/Layout/Blank.php index f731df3..8a0d0ff 100644 --- a/src/Layout/Blank.php +++ b/src/Layout/Blank.php @@ -9,6 +9,9 @@ use ctiso\Filter\Filter, class Blank extends Filter { + /** + * @return mixed + */ function execute(HttpRequest $request) { $text = $this->processor->execute($request); diff --git a/src/Primitive.php b/src/Primitive.php index d43921d..13dc67b 100644 --- a/src/Primitive.php +++ b/src/Primitive.php @@ -8,21 +8,29 @@ namespace ctiso; class Primitive { - // varchar + /** + * @param mixed $value + */ public static function to_varchar($value): string { return ((string) $value); } + /** + * @param mixed $value + * @return mixed + */ public static function from_varchar($value) { return $value; } - // int + /** + * @param mixed $value + */ public static function to_bool($value): bool { - return filter_var($value, FILTER_VALIDATE_BOOLEAN);//(int)((bool) $value); + return filter_var($value, FILTER_VALIDATE_BOOLEAN); } /** diff --git a/src/Registry.php b/src/Registry.php index bab923c..75924b4 100644 --- a/src/Registry.php +++ b/src/Registry.php @@ -5,9 +5,10 @@ use ctiso\File, Exception; class Registry { + /** @var array */ private array $namespace = []; - function importFile(string $namespace, ?string $filePath = null) { + function importFile(string $namespace, ?string $filePath = null): void { $data = json_decode(File::getContents($filePath), true); $data['_file'] = $filePath; $this->namespace[$namespace] = [ @@ -16,7 +17,7 @@ class Registry { ]; } - function importArray(string $namespace, array $data = []) { + function importArray(string $namespace, array $data = []): void { if (isset($this->namespace[$namespace])) { $data = array_merge($this->namespace[$namespace]['data'], $data); } @@ -26,6 +27,12 @@ class Registry { ]; } + /** + * @param string $ns + * @param string $key + * @return mixed + * @throws Exception + */ public function get(string $ns, string $key) { if (isset($this->namespace[$ns]['data'][$key])) { return $this->namespace[$ns]['data'][$key]; diff --git a/src/Role/User.php b/src/Role/User.php index 174de9e..972f35e 100644 --- a/src/Role/User.php +++ b/src/Role/User.php @@ -93,8 +93,16 @@ class User implements UserInterface return $result; } + /** + * @param string $random + * @param PDOStatement $result + * @return PDOStatement + */ function setSID(string $random, $result) { - return $this->db->executeQuery("UPDATE users SET sid = '$random', trie_count = 0 WHERE id_user = " . $result->getInt('id_user')); + return $this->db->executeQuery("UPDATE users SET sid = :sid, trie_count = 0 WHERE id_user = :user", [ + 'user' => $result->getInt('id_user'), + 'sid' => $random + ]); } function resetTries(string $login): void {