refactor: add modules folder to phpstan paths + fix errors

This commit is contained in:
Yassine Doghri 2024-04-28 16:39:01 +00:00
commit bb628f355f
166 changed files with 452 additions and 526 deletions

View file

@ -2,7 +2,7 @@
declare(strict_types=1);
use Modules\Analytics\Config\Analytics;
use CodeIgniter\Router\RouteCollection;
/**
* @copyright 2021 Ad Aures
@ -27,17 +27,17 @@ $routes->addPlaceholder(
$routes->group('', [
'namespace' => 'Modules\Analytics\Controllers',
], static function ($routes): void {
$routes->group(config(Analytics::class)->gateway . '/(:num)/(:class)', static function ($routes): void {
$routes->group(config('Analytics')->gateway . '/(:num)/(:class)', static function ($routes): void {
$routes->get('/', 'AnalyticsController::getData/$1/$2', [
'as' => 'analytics-full-data',
'filter' => config(Analytics::class)
'filter' => config('Analytics')
->routeFilters[
'analytics-full-data'
],
]);
$routes->get('(:filter)', 'AnalyticsController::getData/$1/$2/$3', [
'as' => 'analytics-data',
'filter' => config(Analytics::class)
'filter' => config('Analytics')
->routeFilters['analytics-data'],
]);
$routes->get(
@ -45,14 +45,14 @@ $routes->group('', [
'AnalyticsController::getData/$1/$2/$3/$4',
[
'as' => 'analytics-filtered-data',
'filter' => config(Analytics::class)
'filter' => config('Analytics')
->routeFilters[
'analytics-filtered-data'
],
],
);
});
$routes->get(config(Analytics::class)->gateway . '/(:class)/(:filter)', 'AnalyticsController::getData/$1/$2', [
$routes->get(config('Analytics')->gateway . '/(:class)/(:filter)', 'AnalyticsController::getData/$1/$2', [
'as' => 'analytics-data-instance',
]);

View file

@ -31,11 +31,13 @@ class AnalyticsController extends Controller
}
if (! is_numeric($params[0])) {
// @phpstan-ignore-next-line
$this->analyticsModel = model('Analytics' . $params[0] . 'Model');
$this->methodName = 'getData' . $params[1];
return $this->{$method}();
}
// @phpstan-ignore-next-line
$this->analyticsModel = model('Analytics' . $params[1] . 'Model');
$this->methodName = 'getData' . (count($params) >= 3 ? $params[2] : '');

View file

@ -27,7 +27,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcasts extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -26,7 +26,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsByCountry extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsByEpisode extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsByHour extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -28,7 +28,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsByPlayer extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -28,7 +28,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsByRegion extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -30,7 +30,7 @@ use Opawg\UserAgentsV2Php\UserAgentsRSS;
class AnalyticsPodcastsByService extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -24,7 +24,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsPodcastsBySubscription extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -24,7 +24,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsUnknownUserAgent extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['created_at', 'updated_at'];

View file

@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsWebsiteByBrowser extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsWebsiteByEntryPage extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
class AnalyticsWebsiteByReferer extends Entity
{
/**
* @var string[]
* @var list<string>
*/
protected $dates = ['date', 'created_at', 'updated_at'];

View file

@ -11,7 +11,6 @@ declare(strict_types=1);
use AdAures\Ipcat\IpDb;
use Config\Services;
use GeoIp2\Database\Reader;
use Modules\Analytics\Config\Analytics;
use Opawg\UserAgentsV2Php\UserAgents;
use WhichBrowser\Parser;
@ -41,11 +40,12 @@ if (! function_exists('client_ip')) {
*/
function client_ip(): string
{
if (! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
$superglobals = service('superglobals');
if (! empty($superglobals->server('HTTP_X_FORWARDED_FOR'))) {
return $superglobals->server('HTTP_X_FORWARDED_FOR');
}
return $_SERVER['REMOTE_ADDR'];
return $superglobals->server('REMOTE_ADDR');
}
}
@ -109,7 +109,8 @@ if (! function_exists('set_user_session_player')) {
if (! $session->has('player')) {
$playerFound = null;
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$userAgent = service('superglobals')
->server('HTTP_USER_AGENT');
try {
$playerFound = UserAgents::find($userAgent);
@ -175,7 +176,8 @@ if (! function_exists('set_user_session_referer')) {
{
$session = Services::session();
$newreferer = $_SERVER['HTTP_REFERER'] ?? '- Direct -';
$newreferer = service('superglobals')
->server('HTTP_REFERER') ?? '- Direct -';
$newreferer =
parse_url((string) $newreferer, PHP_URL_HOST) ===
parse_url(current_url(false), PHP_URL_HOST)
@ -195,7 +197,8 @@ if (! function_exists('set_user_session_entry_page')) {
{
$session = Services::session();
$entryPage = $_SERVER['REQUEST_URI'];
$entryPage = service('superglobals')
->server('REQUEST_URI');
if (! $session->has('entryPage')) {
$session->set('entryPage', $entryPage);
}
@ -243,10 +246,11 @@ if (! function_exists('podcast_hit')) {
$session->get('player')['bot'] = true;
}
$superglobals = service('superglobals');
//We get the HTTP header field `Range`:
$httpRange = $_SERVER['HTTP_RANGE'] ?? null;
$httpRange = $superglobals->server('HTTP_RANGE') ?? null;
$salt = config(Analytics::class)
$salt = config('Analytics')
->salt;
// We create a sha1 hash for this Salt+Current_Date+IP_Address+User_Agent+Episode_ID (used to count only once multiple episode downloads):
$episodeListenerHashId =
@ -254,11 +258,14 @@ if (! function_exists('podcast_hit')) {
sha1(
$salt . '_' . date(
'Y-m-d'
) . '_' . $clientIp . '_' . $_SERVER['HTTP_USER_AGENT'] . '_' . $episodeId
) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $episodeId
);
// The cache expires at midnight:
$secondsToMidnight = strtotime('tomorrow') - time();
/** @var int|null $downloadedBytes */
$downloadedBytes = cache($episodeListenerHashId);
if ($downloadedBytes === null) {
// If it was never downloaded that means that zero bytes were downloaded:
$downloadedBytes = 0;
@ -301,13 +308,16 @@ if (! function_exists('podcast_hit')) {
sha1(
$salt . '_' . date(
'Y-m-d'
) . '_' . $clientIp . '_' . $_SERVER['HTTP_USER_AGENT'] . '_' . $podcastId
) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $podcastId
);
$newListener = 1;
// Has this listener already downloaded an episode today:
/** @var int|null $downloadsByUser */
$downloadsByUser = cache($podcastListenerHashId);
// We add one download
if ($downloadsByUser) {
if ($downloadsByUser === null) {
$newListener = 0;
++$downloadsByUser;
} else {

View file

@ -12,7 +12,6 @@ declare(strict_types=1);
namespace Modules\Analytics\Models;
use App\Entities\Media\BaseMedia;
use CodeIgniter\Model;
use Modules\Analytics\Entities\AnalyticsPodcasts;
use Modules\Media\Models\MediaModel;
@ -263,7 +262,7 @@ class AnalyticsPodcastModel extends Model
/**
* Get total storage
*
* @return BaseMedia[]
* @return AnalyticsPodcasts[]
*/
public function getDataTotalStorageByMonth(): array
{

View file

@ -15,7 +15,7 @@ namespace Modules\Analytics\Models;
use CodeIgniter\Model;
use Modules\Analytics\Entities\AnalyticsUnknownUserAgent;
class AnalyticsUnknownUserAgentModel extends Model
class AnalyticsUnknownUserAgentsModel extends Model
{
/**
* @var string