chore: Аннотации к типам

This commit is contained in:
origami11@yandex.ru 2025-10-28 20:09:21 +03:00
parent 245b5c6c19
commit 704e4e0bd5
10 changed files with 73 additions and 11 deletions

View file

@ -104,6 +104,14 @@ class Component
$callback, $text); $callback, $text);
} }
/**
* Выполняет запрос компонента и возвращает результат
* Результат может быть строкой или View для обычных компонентов, или массивом для использования в сервисах
*
* @param HttpRequest $request
* @param bool $has_id
* @return mixed
*/
function execute(HttpRequest $request, $has_id = true) { function execute(HttpRequest $request, $has_id = true) {
$crequest = new ComponentRequest($this->component_id, $request); $crequest = new ComponentRequest($this->component_id, $request);
@ -125,6 +133,7 @@ class Component
/** /**
* Получить имя шаблона * Получить имя шаблона
* @param Registry $_registry * @param Registry $_registry
* @return string
*/ */
public function getTemplateName($_registry) { public function getTemplateName($_registry) {
return (isset($_COOKIE['with_template']) && preg_match('/^[\w\d-]{3,20}$/', $_COOKIE['with_template'])) return (isset($_COOKIE['with_template']) && preg_match('/^[\w\d-]{3,20}$/', $_COOKIE['with_template']))
@ -486,7 +495,10 @@ class Component
/** /**
* @param ComponentRequest $request * @param ComponentRequest $request
* @return mixed
*/ */
function actionIndex($request) { function actionIndex($request) {
return null;
} }
} }

View file

@ -100,7 +100,7 @@ namespace ctiso {
/** /**
* Выполняет запрос к базе данных * Выполняет запрос к базе данных
* @param string $query - запрос * @param string $query - запрос
* @param array $values - значения * @param ?array<string, mixed> $values - значения
*/ */
public function executeQuery($query, $values = null): PDOStatement|bool public function executeQuery($query, $values = null): PDOStatement|bool
{ {
@ -124,7 +124,7 @@ namespace ctiso {
/** /**
* Извлекает из базы все элементы по запросу (Для совместимости со старым представлением баз данных CIS) * Извлекает из базы все элементы по запросу (Для совместимости со старым представлением баз данных CIS)
* @param string $query - запрос * @param string $query - запрос
* @param array<string, mixed> $values - значения * @param ?array<string, mixed> $values - значения
* @return list<array<string, mixed>> * @return list<array<string, mixed>>
*/ */
public function fetchAllArray($query, $values = null) public function fetchAllArray($query, $values = null)
@ -138,7 +138,7 @@ namespace ctiso {
/** /**
* Извлекает из базы первый элемент по запросу * Извлекает из базы первый элемент по запросу
* @param string $query - запрос * @param string $query - запрос
* @param array<string, mixed> $values - значения * @param ?array<string, mixed> $values - значения
* @return array<string, mixed>|false * @return array<string, mixed>|false
*/ */
public function fetchOneArray($query, $values = null) public function fetchOneArray($query, $values = null)

View file

@ -18,6 +18,7 @@ class JsonInstall {
* Установить базу данных * Установить базу данных
* @param string $dbinit_path * @param string $dbinit_path
* @param ?string $dbfill_path * @param ?string $dbfill_path
* @return int
*/ */
function install($dbinit_path, $dbfill_path = null) { function install($dbinit_path, $dbfill_path = null) {
$dbinit_file = file_get_contents($dbinit_path); $dbinit_file = file_get_contents($dbinit_path);
@ -37,6 +38,7 @@ class JsonInstall {
$this->fillDataBase($dbfill_path); $this->fillDataBase($dbfill_path);
} }
$this->makeConstraints($initActions); $this->makeConstraints($initActions);
return 1;
} }
/** /**

View file

@ -7,6 +7,36 @@ use ctiso\Tools\SQLStatementExtractor;
use ctiso\Path; use ctiso\Path;
use Exception; use Exception;
/**
* @phpstan-type Action array{
* type:string,
* table_name:string,
* table:string,
* fields:array,
* field: ColumnProps,
* constraints:?array,
* references:?array,
* source:string,
* pgsql?:string,
* old_name?:string,
* new_name?:string,
* column?:string,
* column_name?:string,
* refTable?:string,
* refColumn?:string,
* values:array,
* view:string,
* select:string
* }
*
* @phpstan-type ColumnProps array{
* name:string,
* type:string,
* not_null:bool,
* default:?string,
* references:?array{refTable:string,refColumn:string}
* }
*/
class Manager class Manager
{ {
/** @var Database */ /** @var Database */
@ -19,7 +49,7 @@ class Manager
/** /**
* Выполняет действие * Выполняет действие
* @param array $action * @param Action $action
* @param string $db_file * @param string $db_file
* @throws Exception * @throws Exception
*/ */
@ -180,7 +210,7 @@ class Manager
/** /**
* Возвращает определение столбца * Возвращает определение столбца
* @param string $name * @param string $name
* @param array $data * @param ColumnProps $data
* @param bool $pg * @param bool $pg
* @return string * @return string
*/ */

View file

@ -7,6 +7,9 @@ class Number
/** @var int */ /** @var int */
public $value; public $value;
/**
* @param int|float $value
*/
function __construct($value) function __construct($value)
{ {
$this->value = (int)($value); $this->value = (int)($value);

View file

@ -34,11 +34,21 @@ class TableRow
/** @var int|false */ /** @var int|false */
public $height = false; public $height = false;
/**
* Устанавливает значение для клетки
* @param int $y Номер столбца
* @param string $value Значение клетки
*/
function setCell($y, $value): void function setCell($y, $value): void
{ {
$this->cells[$y] = new TableCell($value); $this->cells[$y] = new TableCell($value);
} }
/**
* Устанавливает стиль для клетки
* @param int $y Номер столбца
* @param string $name Имя стиля
*/
function setCellStyle($y, $name): void function setCellStyle($y, $name): void
{ {
$this->cells[$y]->style = $name; $this->cells[$y]->style = $name;

View file

@ -10,7 +10,9 @@ use ctiso\Filter\UserAccess,
class ActionAccess class ActionAccess
{ {
/** @var array */
public $access = []; public $access = [];
/** @var FilterInterface */
public $processor; public $processor;
/** @var User */ /** @var User */
public $user; public $user;

View file

@ -31,7 +31,7 @@ class Form {
protected $replace; protected $replace;
protected $before; protected $before;
/** @var array */ /** @var array<string> */
public $_title = []; public $_title = [];
/** @var array */ /** @var array */
public $alias = []; public $alias = [];
@ -47,7 +47,6 @@ class Form {
'input' => Input::class, 'input' => Input::class,
// input с проверкой на заполненность // input с проверкой на заполненность
'inputreq' => Input::class, 'inputreq' => Input::class,
'date' => Date::class, 'date' => Date::class,
'datereq' => Date::class, 'datereq' => Date::class,
'datetime' => DateTime::class, 'datetime' => DateTime::class,
@ -93,6 +92,8 @@ class Form {
/** /**
* Добавляет одно поле ввода на форму * Добавляет одно поле ввода на форму
* @param array{ type: string, name: string, hint?: string } $init
* @param OptionsFactory|null $factory
*/ */
public function addField(array $init, $factory = null): Field public function addField(array $init, $factory = null): Field
{ {

View file

@ -277,7 +277,7 @@ class Functions {
/** /**
* @param string $key * @param string $key
* @param string $value * @param string $value
* @param array|\ArrayIterator $array * @param list<array<string, mixed>>|\ArrayIterator $array
*/ */
static function assoc_key_values($key, $value, $array) { static function assoc_key_values($key, $value, $array) {
$result = []; $result = [];
@ -289,7 +289,7 @@ class Functions {
/** /**
* @param string $key * @param string $key
* @param array|\ArrayIterator $array * @param list<array<string, mixed>>|\ArrayIterator $array
*/ */
static function assoc_key($key, $array) { static function assoc_key($key, $array) {
$result = []; $result = [];
@ -334,7 +334,7 @@ class Functions {
/** /**
* Логическа операция && ко всем элементам массива * Логическа операция && ко всем элементам массива
* @param array $array Массив * @param array<mixed> $array Массив
* @param callable $callback Функция * @param callable $callback Функция
* @return bool * @return bool
*/ */
@ -349,6 +349,8 @@ class Functions {
/** /**
* Логическа операция || ко всем элементам массива * Логическа операция || ко всем элементам массива
* @param array<mixed> $array Массив
* @param callable $callback Функция
* @return mixed * @return mixed
*/ */
static function some(array $array, callable $callback) { static function some(array $array, callable $callback) {

View file

@ -14,7 +14,7 @@ class Pages
* @param int $onpage количество страниц на странице * @param int $onpage количество страниц на странице
* @param int $count количество всех страниц * @param int $count количество всех страниц
* @param string $prefix префикс * @param string $prefix префикс
* @return array{'all': bool, 'list': array, 'first': string, 'last': string, 'next': string, 'prev': string} * @return array{'all': bool, 'list': array, 'first': string, 'last': string, 'next': string|false, 'prev': string|false}
*/ */
static function getPages($page, $onpage, $count, $prefix = '?') static function getPages($page, $onpage, $count, $prefix = '?')
{ {