phpstan level 2

This commit is contained in:
slawkens 2024-02-01 21:30:34 +01:00
parent 8705d3eedd
commit 42ce80170e
16 changed files with 56 additions and 21 deletions

View File

@ -16,7 +16,7 @@ $title = 'Notepad';
csrfProtect(); csrfProtect();
/** /**
* @var $account_logged OTS_Account * @var OTS_Account $account_logged
*/ */
$_content = ''; $_content = '';
$notepad = ModelsNotepad::where('account_id', $account_logged->getId())->first(); $notepad = ModelsNotepad::where('account_id', $account_logged->getId())->first();

View File

@ -11,13 +11,13 @@ function query($query)
error($error_); error($error_);
$error = true; $error = true;
} }
return !$error; return !$error;
} }
// define php version id if its not already // define php version id if its not already
if(!defined('PHP_VERSION_ID')) { if(!defined('PHP_VERSION_ID')) {
$version = explode('.', PHP_VERSION); $version = array_map('intval', explode('.', PHP_VERSION));
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2])); define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
} }
@ -97,4 +97,4 @@ function win_is_writable($path) {
unlink($path); unlink($path);
return true; return true;
} }

View File

@ -1,5 +1,5 @@
parameters: parameters:
level: 1 level: 2
paths: paths:
- . - .
- templates/tibiacom - templates/tibiacom
@ -10,6 +10,8 @@ parameters:
- plugins/* - plugins/*
- templates/* - templates/*
- system/libs - system/libs
- tools/signature/mango.php
- tools/signature/gd.class.php
bootstrapFiles: bootstrapFiles:
- phpstan-bootstrap.php - phpstan-bootstrap.php
ignoreErrors: ignoreErrors:

View File

@ -418,7 +418,10 @@ function delete_guild($id)
if(count($rank_list) > 0) { if(count($rank_list) > 0) {
$rank_list->orderBy('level'); $rank_list->orderBy('level');
global $db, $ots; global $db;
/**
* @var OTS_GuildRank $rank_in_guild
*/
foreach($rank_list as $rank_in_guild) { foreach($rank_list as $rank_in_guild) {
if($db->hasTable('guild_members')) if($db->hasTable('guild_members'))
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_members`.`rank_id` as `rank_id` FROM `players`, `guild_members` WHERE `guild_members`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_members`.`player_id` ORDER BY `name`;'); $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_members`.`rank_id` as `rank_id` FROM `players`, `guild_members` WHERE `guild_members`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_members`.`player_id` ORDER BY `name`;');
@ -710,11 +713,8 @@ function getSkillName($skillId, $suffix = true)
/** /**
* Performs flag check on the current logged in user. * Performs flag check on the current logged in user.
* Table in database: accounts, field: website_flags * Table in database: accounts, field: website_flags
*
* @param int @flag Flag to be verified.
* @return bool If user got flag.
*/ */
function hasFlag($flag) { function hasFlag(int $flag): bool {
global $logged, $logged_flags; global $logged, $logged_flags;
return ($logged && ($logged_flags & $flag) == $flag); return ($logged && ($logged_flags & $flag) == $flag);
} }
@ -1111,7 +1111,7 @@ function getTopPlayers($limit = 5) {
$columns[] = 'online'; $columns[] = 'online';
} }
$players = Player::query() $players = Player::query()/** @phpstan-ignore-line */
->select($columns) ->select($columns)
->withOnlineStatus() ->withOnlineStatus()
->notDeleted() ->notDeleted()

View File

@ -55,7 +55,7 @@ elseif($action == 'step1' && $action_type == 'email')
</TD></TR></FORM></TABLE></TABLE>'; </TD></TR></FORM></TABLE></TABLE>';
else else
{ {
$insec = $account->getCustomField('email_next') - time(); $insec = (int)$account->getCustomField('email_next') - time();
$minutesleft = floor($insec / 60); $minutesleft = floor($insec / 60);
$secondsleft = $insec - ($minutesleft * 60); $secondsleft = $insec - ($minutesleft * 60);
$timeleft = $minutesleft.' minutes '.$secondsleft.' seconds'; $timeleft = $minutesleft.' minutes '.$secondsleft.' seconds';
@ -118,7 +118,7 @@ elseif($action == 'sendcode')
} }
else else
{ {
$insec = $account->getCustomField('email_next') - time(); $insec = (int)$account->getCustomField('email_next') - time();
$minutesleft = floor($insec / 60); $minutesleft = floor($insec / 60);
$secondsleft = $insec - ($minutesleft * 60); $secondsleft = $insec - ($minutesleft * 60);
$timeleft = $minutesleft.' minutes '.$secondsleft.' seconds'; $timeleft = $minutesleft.' minutes '.$secondsleft.' seconds';

View File

@ -23,9 +23,15 @@ $guilds_list = new OTS_Guilds_List();
$guilds_list->init(); $guilds_list->init();
if(count($guilds_list) > 0) if(count($guilds_list) > 0)
{ {
/**
* @var OTS_Guild $guild
*/
foreach($guilds_list as $guild) foreach($guilds_list as $guild)
{ {
$error = 0; $error = 0;
/**
* @var OTS_Player $leader
*/
$leader = $guild->getOwner(); $leader = $guild->getOwner();
if($leader->isLoaded()) if($leader->isLoaded())
{ {

View File

@ -117,6 +117,9 @@ if(isset($todo) && $todo == 'save')
$ranks = $new_guild->getGuildRanksList(); $ranks = $new_guild->getGuildRanksList();
$ranks->orderBy('level', POT::ORDER_DESC); $ranks->orderBy('level', POT::ORDER_DESC);
foreach($ranks as $rank) { foreach($ranks as $rank) {
/**
* @var OTS_GuildRank $rank
*/
if($rank->getLevel() == 3) { if($rank->getLevel() == 3) {
$player->setRank($rank); $player->setRank($rank);
} }

View File

@ -19,6 +19,9 @@ $guilds_list->orderBy("name");
$guilds = array(); $guilds = array();
if(count($guilds_list) > 0) if(count($guilds_list) > 0)
{ {
/**
* @var OTS_Guild $guild
*/
foreach ($guilds_list as $guild) { foreach ($guilds_list as $guild) {
$guild_logo = $guild->getCustomField('logo_name'); $guild_logo = $guild->getCustomField('logo_name');
if (empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo)) if (empty($guild_logo) || !file_exists(GUILD_IMAGES_DIR . $guild_logo))

View File

@ -147,7 +147,7 @@ if ($cache->enabled()) {
} }
$offset = ($page - 1) * $configHighscoresPerPage; $offset = ($page - 1) * $configHighscoresPerPage;
$query->join('accounts', 'accounts.id', '=', 'players.account_id') $query->join('accounts', 'accounts.id', '=', 'players.account_id') /** @phpstan-ignore-line */
->withOnlineStatus() ->withOnlineStatus()
->whereNotIn('players.id', setting('core.highscores_ids_hidden')) ->whereNotIn('players.id', setting('core.highscores_ids_hidden'))
->notDeleted() ->notDeleted()
@ -203,8 +203,8 @@ if (empty($highscores)) {
$highscores = $query->get()->map(function($row) { $highscores = $query->get()->map(function($row) {
$tmp = $row->toArray(); $tmp = $row->toArray();
$tmp['online'] = $row->online_status; $tmp['online'] = $row->online_status; /** @phpstan-ignore-line */
$tmp['vocation'] = $row->vocation_name; $tmp['vocation'] = $row->vocation_name; /** @phpstan-ignore-line */
unset($tmp['online_table']); unset($tmp['online_table']);
return $tmp; return $tmp;

View File

@ -25,7 +25,7 @@ class CsrfToken
* *
* @access public * @access public
* @static true * @static true
* @return void * @return string
**/ **/
public static function create(bool $return = false): string { public static function create(bool $return = false): string {
$input = '<input type="hidden" name="csrf_token" value="' . self::get() . '" />'; $input = '<input type="hidden" name="csrf_token" value="' . self::get() . '" />';

View File

@ -4,6 +4,14 @@ namespace MyAAC\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
/**
* @property int $id
* @property int $type
* @property int $where
* @property string $body
* @property int $player_id
* @property int $date
*/
class Changelog extends Model { class Changelog extends Model {
protected $table = TABLE_PREFIX . 'changelog'; protected $table = TABLE_PREFIX . 'changelog';

View File

@ -3,6 +3,13 @@
namespace MyAAC\Models; namespace MyAAC\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
/**
* @property int $id
* @property string $name
* @property string $title
* @property int $php
* @property int $hide
*/
class Pages extends Model { class Pages extends Model {
protected $table = TABLE_PREFIX . 'pages'; protected $table = TABLE_PREFIX . 'pages';

View File

@ -3,6 +3,11 @@
namespace MyAAC\Models; namespace MyAAC\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
/**
* @property string $name
* @property string $key
* @property string $value
*/
class Settings extends Model { class Settings extends Model {
protected $table = TABLE_PREFIX . 'settings'; protected $table = TABLE_PREFIX . 'settings';

View File

@ -141,8 +141,8 @@ class Validator
* Validate account password * Validate account password
* Name lenght must be 3-32 chars * Name lenght must be 3-32 chars
* *
* @param string $name Account name to check * @param string $password Password to check
* @return bool Is account name valid? * @return bool Is password valid?
*/ */
public static function password($password) public static function password($password)
{ {

View File

@ -102,6 +102,9 @@ if($status_interval && $status_timeout < $status_interval) {
$status_timeout = $status_interval; $status_timeout = $status_interval;
} }
/**
* @var int $status_timeout
*/
if($status['lastCheck'] + $status_timeout < time()) { if($status['lastCheck'] + $status_timeout < time()) {
updateStatus(); updateStatus();
} }

View File

@ -171,8 +171,6 @@ function get_template_menus() {
$new_menus = array(); $new_menus = array();
/** /**
* @var array $configMenuCategories * @var array $configMenuCategories
* @var int $id
* @var array $options
*/ */
$configMenuCategories = config('menu_categories'); $configMenuCategories = config('menu_categories');
if($configMenuCategories === null) { if($configMenuCategories === null) {