build(php): upgrade min php version to 8.3

This commit is contained in:
Yassine Doghri 2024-05-29 10:24:13 +00:00
parent e2a90def88
commit b5bd2db28f
182 changed files with 517 additions and 115 deletions

View File

@ -4,7 +4,7 @@
# ⚠️ NOT optimized for production # ⚠️ NOT optimized for production
# should be used only for development purposes # should be used only for development purposes
#--------------------------------------------------- #---------------------------------------------------
FROM php:8.2-fpm FROM php:8.3-fpm
LABEL maintainer="Yassine Doghri <yassine@doghri.fr>" LABEL maintainer="Yassine Doghri <yassine@doghri.fr>"

View File

@ -1,4 +1,4 @@
image: code.castopod.org:5050/adaures/castopod:ci image: code.castopod.org:5050/adaures/castopod:ci-php8.3
stages: stages:
- prepare - prepare

View File

@ -9,6 +9,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\Response; use CodeIgniter\HTTP\Response;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Override;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use ViewThemes\Theme; use ViewThemes\Theme;
@ -52,6 +53,7 @@ abstract class BaseController extends Controller
/** /**
* Constructor. * Constructor.
*/ */
#[Override]
public function initController( public function initController(
RequestInterface $request, RequestInterface $request,
ResponseInterface $response, ResponseInterface $response,

View File

@ -25,6 +25,7 @@ use Config\Services;
use Modules\Analytics\Config\Analytics; use Modules\Analytics\Config\Analytics;
use Modules\PremiumPodcasts\Entities\Subscription; use Modules\PremiumPodcasts\Entities\Subscription;
use Modules\PremiumPodcasts\Models\SubscriptionModel; use Modules\PremiumPodcasts\Models\SubscriptionModel;
use Override;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
class EpisodeAudioController extends Controller class EpisodeAudioController extends Controller
@ -53,6 +54,7 @@ class EpisodeAudioController extends Controller
/** /**
* Constructor. * Constructor.
*/ */
#[Override]
public function initController( public function initController(
RequestInterface $request, RequestInterface $request,
ResponseInterface $response, ResponseInterface $response,

View File

@ -22,6 +22,7 @@ use CodeIgniter\HTTP\URI;
use CodeIgniter\I18n\Time; use CodeIgniter\I18n\Time;
use Modules\Analytics\AnalyticsTrait; use Modules\Analytics\AnalyticsTrait;
use Modules\Fediverse\Controllers\PostController as FediversePostController; use Modules\Fediverse\Controllers\PostController as FediversePostController;
use Override;
class PostController extends FediversePostController class PostController extends FediversePostController
{ {
@ -41,6 +42,7 @@ class PostController extends FediversePostController
*/ */
protected $helpers = ['auth', 'fediverse', 'svg', 'components', 'misc', 'seo', 'premium_podcasts']; protected $helpers = ['auth', 'fediverse', 'svg', 'components', 'misc', 'seo', 'premium_podcasts'];
#[Override]
public function _remap(string $method, string ...$params): mixed public function _remap(string $method, string ...$params): mixed
{ {
if ( if (
@ -110,6 +112,7 @@ class PostController extends FediversePostController
return $cachedView; return $cachedView;
} }
#[Override]
public function attemptCreate(): RedirectResponse public function attemptCreate(): RedirectResponse
{ {
$rules = [ $rules = [
@ -161,6 +164,7 @@ class PostController extends FediversePostController
return redirect()->back(); return redirect()->back();
} }
#[Override]
public function attemptReply(): RedirectResponse public function attemptReply(): RedirectResponse
{ {
$rules = [ $rules = [
@ -200,6 +204,7 @@ class PostController extends FediversePostController
return redirect()->back(); return redirect()->back();
} }
#[Override]
public function attemptFavourite(): RedirectResponse public function attemptFavourite(): RedirectResponse
{ {
model('FavouriteModel')->toggleFavourite(interact_as_actor(), $this->post); model('FavouriteModel')->toggleFavourite(interact_as_actor(), $this->post);
@ -207,6 +212,7 @@ class PostController extends FediversePostController
return redirect()->back(); return redirect()->back();
} }
#[Override]
public function attemptReblog(): RedirectResponse public function attemptReblog(): RedirectResponse
{ {
(new PostModel())->toggleReblog(interact_as_actor(), $this->post); (new PostModel())->toggleReblog(interact_as_actor(), $this->post);

View File

@ -21,7 +21,7 @@ class WebmanifestController extends Controller
/** /**
* @var array<string, array<string, string>> * @var array<string, array<string, string>>
*/ */
final public const THEME_COLORS = [ final public const array THEME_COLORS = [
'pine' => [ 'pine' => [
'theme' => '#009486', 'theme' => '#009486',
'background' => '#F0F9F8', 'background' => '#F0F9F8',

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddCategories extends BaseMigration class AddCategories extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -45,6 +48,7 @@ class AddCategories extends BaseMigration
$this->forge->createTable('categories'); $this->forge->createTable('categories');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('categories'); $this->forge->dropTable('categories');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddLanguages extends BaseMigration class AddLanguages extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -31,6 +34,7 @@ class AddLanguages extends BaseMigration
$this->forge->createTable('languages'); $this->forge->createTable('languages');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('languages'); $this->forge->dropTable('languages');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcasts extends BaseMigration class AddPodcasts extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -205,6 +208,7 @@ class AddPodcasts extends BaseMigration
$this->forge->createTable('podcasts'); $this->forge->createTable('podcasts');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('podcasts'); $this->forge->dropTable('podcasts');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddEpisodes extends BaseMigration class AddEpisodes extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -171,6 +174,7 @@ class AddEpisodes extends BaseMigration
$this->db->query($createQuery); $this->db->query($createQuery);
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('episodes'); $this->forge->dropTable('episodes');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPlatforms extends BaseMigration class AddPlatforms extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -47,6 +50,7 @@ class AddPlatforms extends BaseMigration
$this->forge->createTable('platforms'); $this->forge->createTable('platforms');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('platforms'); $this->forge->dropTable('platforms');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsPlatforms extends BaseMigration class AddPodcastsPlatforms extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -52,6 +55,7 @@ class AddPodcastsPlatforms extends BaseMigration
$this->forge->createTable('podcasts_platforms'); $this->forge->createTable('podcasts_platforms');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('podcasts_platforms'); $this->forge->dropTable('podcasts_platforms');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddEpisodeComments extends BaseMigration class AddEpisodeComments extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -71,6 +74,7 @@ class AddEpisodeComments extends BaseMigration
$this->forge->createTable('episode_comments'); $this->forge->createTable('episode_comments');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('episode_comments'); $this->forge->dropTable('episode_comments');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddLikes extends BaseMigration class AddLikes extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -34,6 +37,7 @@ class AddLikes extends BaseMigration
$this->forge->createTable('likes'); $this->forge->createTable('likes');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('likes'); $this->forge->dropTable('likes');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPages extends BaseMigration class AddPages extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -48,6 +51,7 @@ class AddPages extends BaseMigration
$this->forge->createTable('pages'); $this->forge->createTable('pages');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('pages'); $this->forge->dropTable('pages');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsCategories extends BaseMigration class AddPodcastsCategories extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -32,6 +35,7 @@ class AddPodcastsCategories extends BaseMigration
$this->forge->createTable('podcasts_categories'); $this->forge->createTable('podcasts_categories');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('podcasts_categories'); $this->forge->dropTable('podcasts_categories');

View File

@ -10,8 +10,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddClips extends BaseMigration class AddClips extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -94,6 +97,7 @@ class AddClips extends BaseMigration
$this->forge->createTable('clips'); $this->forge->createTable('clips');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('clips'); $this->forge->dropTable('clips');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPersons extends BaseMigration class AddPersons extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -67,6 +70,7 @@ class AddPersons extends BaseMigration
$this->forge->createTable('persons'); $this->forge->createTable('persons');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('persons'); $this->forge->dropTable('persons');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsPersons extends BaseMigration class AddPodcastsPersons extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -46,6 +49,7 @@ class AddPodcastsPersons extends BaseMigration
$this->forge->createTable('podcasts_persons'); $this->forge->createTable('podcasts_persons');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('podcasts_persons'); $this->forge->dropTable('podcasts_persons');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddEpisodesPersons extends BaseMigration class AddEpisodesPersons extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -51,6 +54,7 @@ class AddEpisodesPersons extends BaseMigration
$this->forge->createTable('episodes_persons'); $this->forge->createTable('episodes_persons');
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropTable('episodes_persons'); $this->forge->dropTable('episodes_persons');

View File

@ -10,8 +10,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddCreditsView extends BaseMigration class AddCreditsView extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
// Creates View for credit UNION query // Creates View for credit UNION query
@ -37,6 +40,7 @@ class AddCreditsView extends BaseMigration
$this->db->query($createQuery); $this->db->query($createQuery);
} }
#[Override]
public function down(): void public function down(): void
{ {
$viewName = $this->db->prefixTable('credits'); $viewName = $this->db->prefixTable('credits');

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddEpisodeIdToPosts extends BaseMigration class AddEpisodeIdToPosts extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();
@ -38,6 +41,7 @@ class AddEpisodeIdToPosts extends BaseMigration
$this->forge->processIndexes('fediverse_posts'); $this->forge->processIndexes('fediverse_posts');
} }
#[Override]
public function down(): void public function down(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddCreatedByToPosts extends BaseMigration class AddCreatedByToPosts extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();
@ -38,6 +41,7 @@ class AddCreatedByToPosts extends BaseMigration
$this->forge->processIndexes('fediverse_posts'); $this->forge->processIndexes('fediverse_posts');
} }
#[Override]
public function down(): void public function down(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();

View File

@ -4,8 +4,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddFullTextSearchIndexes extends BaseMigration class AddFullTextSearchIndexes extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();
@ -31,6 +34,7 @@ class AddFullTextSearchIndexes extends BaseMigration
$this->db->query($createQuery); $this->db->query($createQuery);
} }
#[Override]
public function down(): void public function down(): void
{ {
$prefix = $this->db->getPrefix(); $prefix = $this->db->getPrefix();

View File

@ -4,8 +4,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddEpisodePreviewId extends BaseMigration class AddEpisodePreviewId extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$fields = [ $fields = [
@ -28,6 +31,7 @@ class AddEpisodePreviewId extends BaseMigration
$this->db->query($uniquePreviewId); $this->db->query($uniquePreviewId);
} }
#[Override]
public function down(): void public function down(): void
{ {
$fields = ['preview_id']; $fields = ['preview_id'];

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsOwnerEmailRemovedFromFeed extends BaseMigration class AddPodcastsOwnerEmailRemovedFromFeed extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$fields = [ $fields = [
@ -28,6 +31,7 @@ class AddPodcastsOwnerEmailRemovedFromFeed extends BaseMigration
$this->forge->addColumn('podcasts', $fields); $this->forge->addColumn('podcasts', $fields);
} }
#[Override]
public function down(): void public function down(): void
{ {
$fields = ['is_owner_email_removed_from_feed']; $fields = ['is_owner_email_removed_from_feed'];

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsMediumField extends BaseMigration class AddPodcastsMediumField extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$fields = [ $fields = [
@ -28,6 +31,7 @@ class AddPodcastsMediumField extends BaseMigration
$this->forge->addColumn('podcasts', $fields); $this->forge->addColumn('podcasts', $fields);
} }
#[Override]
public function down(): void public function down(): void
{ {
$fields = ['medium']; $fields = ['medium'];

View File

@ -12,8 +12,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use Override;
class AddPodcastsVerifyTxtField extends BaseMigration class AddPodcastsVerifyTxtField extends BaseMigration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$fields = [ $fields = [
@ -27,6 +30,7 @@ class AddPodcastsVerifyTxtField extends BaseMigration
$this->forge->addColumn('podcasts', $fields); $this->forge->addColumn('podcasts', $fields);
} }
#[Override]
public function down(): void public function down(): void
{ {
$this->forge->dropColumn('podcasts', 'verify_txt'); $this->forge->dropColumn('podcasts', 'verify_txt');

View File

@ -5,9 +5,11 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use CodeIgniter\Database\Migration; use CodeIgniter\Database\Migration;
use Override;
class RefactorPlatforms extends Migration class RefactorPlatforms extends Migration
{ {
#[Override]
public function up(): void public function up(): void
{ {
$this->forge->addField([ $this->forge->addField([
@ -80,6 +82,7 @@ class RefactorPlatforms extends Migration
$this->forge->renameTable('platforms_temp', 'platforms'); $this->forge->renameTable('platforms_temp', 'platforms');
} }
#[Override]
public function down(): void public function down(): void
{ {
// delete platforms // delete platforms

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Database\Migrations; namespace App\Database\Migrations;
use CodeIgniter\Database\Migration; use CodeIgniter\Database\Migration;
use Override;
/** /**
* CodeIgniter 4.5.1 introduces new DataCaster class that breaks deserialization of import queue tasks. * CodeIgniter 4.5.1 introduces new DataCaster class that breaks deserialization of import queue tasks.
@ -12,11 +13,13 @@ use CodeIgniter\Database\Migration;
*/ */
class ClearImportQueue extends Migration class ClearImportQueue extends Migration
{ {
#[Override]
public function up(): void public function up(): void
{ {
service('settings')->forget('Import.queue'); service('settings')->forget('Import.queue');
} }
#[Override]
public function down(): void public function down(): void
{ {
// nothing // nothing

View File

@ -14,6 +14,7 @@ namespace App\Database\Migrations;
use CodeIgniter\Database\BaseConnection; use CodeIgniter\Database\BaseConnection;
use CodeIgniter\Database\Migration; use CodeIgniter\Database\Migration;
use Override;
class BaseMigration extends Migration class BaseMigration extends Migration
{ {
@ -24,10 +25,12 @@ class BaseMigration extends Migration
*/ */
protected $db; protected $db;
#[Override]
public function up(): void public function up(): void
{ {
} }
#[Override]
public function down(): void public function down(): void
{ {
} }

View File

@ -13,9 +13,11 @@ declare(strict_types=1);
namespace App\Database\Seeds; namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use Override;
class AppSeeder extends Seeder class AppSeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
$this->call('CategorySeeder'); $this->call('CategorySeeder');

View File

@ -13,9 +13,11 @@ declare(strict_types=1);
namespace App\Database\Seeds; namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use Override;
class CategorySeeder extends Seeder class CategorySeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
$data = [ $data = [

View File

@ -13,9 +13,11 @@ declare(strict_types=1);
namespace App\Database\Seeds; namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use Override;
class DevSeeder extends Seeder class DevSeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
$this->call('CategorySeeder'); $this->call('CategorySeeder');

View File

@ -15,9 +15,11 @@ namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use CodeIgniter\Shield\Entities\User; use CodeIgniter\Shield\Entities\User;
use Modules\Auth\Models\UserModel; use Modules\Auth\Models\UserModel;
use Override;
class DevSuperadminSeeder extends Seeder class DevSuperadminSeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
if ((new UserModel())->where('is_owner', true)->first() instanceof User) { if ((new UserModel())->where('is_owner', true)->first() instanceof User) {

View File

@ -20,9 +20,11 @@ use CodeIgniter\Database\Seeder;
use Exception; use Exception;
use GeoIp2\Database\Reader; use GeoIp2\Database\Reader;
use GeoIp2\Exception\AddressNotFoundException; use GeoIp2\Exception\AddressNotFoundException;
use Override;
class FakePodcastsAnalyticsSeeder extends Seeder class FakePodcastsAnalyticsSeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
$jsonUserAgents = json_decode( $jsonUserAgents = json_decode(

View File

@ -18,6 +18,7 @@ use App\Models\EpisodeModel;
use App\Models\PodcastModel; use App\Models\PodcastModel;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use Exception; use Exception;
use Override;
class FakeWebsiteAnalyticsSeeder extends Seeder class FakeWebsiteAnalyticsSeeder extends Seeder
{ {
@ -181,6 +182,7 @@ class FakeWebsiteAnalyticsSeeder extends Seeder
'WOSBrowser', 'WOSBrowser',
]; ];
#[Override]
public function run(): void public function run(): void
{ {
$podcast = (new PodcastModel())->first(); $podcast = (new PodcastModel())->first();

View File

@ -18,9 +18,11 @@ declare(strict_types=1);
namespace App\Database\Seeds; namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder; use CodeIgniter\Database\Seeder;
use Override;
class LanguageSeeder extends Seeder class LanguageSeeder extends Seeder
{ {
#[Override]
public function run(): void public function run(): void
{ {
$data = [ $data = [

View File

@ -12,6 +12,7 @@ namespace App\Entities;
use App\Models\PodcastModel; use App\Models\PodcastModel;
use Modules\Fediverse\Entities\Actor as FediverseActor; use Modules\Fediverse\Entities\Actor as FediverseActor;
use Override;
use RuntimeException; use RuntimeException;
/** /**
@ -42,6 +43,7 @@ class Actor extends FediverseActor
return $this->podcast; return $this->podcast;
} }
#[Override]
public function getAvatarImageUrl(): string public function getAvatarImageUrl(): string
{ {
if ($this->podcast instanceof Podcast) { if ($this->podcast instanceof Podcast) {
@ -51,6 +53,7 @@ class Actor extends FediverseActor
return parent::getAvatarImageUrl(); return parent::getAvatarImageUrl();
} }
#[Override]
public function getAvatarImageMimetype(): string public function getAvatarImageMimetype(): string
{ {
if ($this->podcast instanceof Podcast) { if ($this->podcast instanceof Podcast) {

View File

@ -13,6 +13,7 @@ namespace App\Entities\Clip;
use CodeIgniter\Files\File; use CodeIgniter\Files\File;
use Modules\Media\Entities\Video; use Modules\Media\Entities\Video;
use Modules\Media\Models\MediaModel; use Modules\Media\Models\MediaModel;
use Override;
/** /**
* @property array $theme * @property array $theme
@ -63,6 +64,7 @@ class VideoClip extends BaseClip
return $this; return $this;
} }
#[Override]
public function setMedia(File $file, string $fileKey): static public function setMedia(File $file, string $fileKey): static
{ {
if ($this->attributes['media_id'] !== null) { if ($this->attributes['media_id'] !== null) {

View File

@ -26,12 +26,12 @@ class Location extends Entity
/** /**
* @var string * @var string
*/ */
private const OSM_URL = 'https://www.openstreetmap.org/'; private const string OSM_URL = 'https://www.openstreetmap.org/';
/** /**
* @var string * @var string
*/ */
private const NOMINATIM_URL = 'https://nominatim.openstreetmap.org/'; private const string NOMINATIM_URL = 'https://nominatim.openstreetmap.org/';
public function __construct( public function __construct(
protected string $name, protected string $name,

View File

@ -7,12 +7,14 @@ namespace App\Filters;
use CodeIgniter\Filters\FilterInterface; use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Override;
class AllowCorsFilter implements FilterInterface class AllowCorsFilter implements FilterInterface
{ {
/** /**
* @param string[]|null $arguments * @param string[]|null $arguments
*/ */
#[Override]
public function before(RequestInterface $request, $arguments = null): void public function before(RequestInterface $request, $arguments = null): void
{ {
// Do something here // Do something here
@ -21,6 +23,7 @@ class AllowCorsFilter implements FilterInterface
/** /**
* @param string[]|null $arguments * @param string[]|null $arguments
*/ */
#[Override]
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void
{ {
if (! $response->hasHeader('Cache-Control')) { if (! $response->hasHeader('Cache-Control')) {

View File

@ -19,6 +19,7 @@ use CodeIgniter\Router\Exceptions\RedirectException;
use CodeIgniter\Router\Exceptions\RouterException; use CodeIgniter\Router\Exceptions\RouterException;
use CodeIgniter\Router\Router as CodeIgniterRouter; use CodeIgniter\Router\Router as CodeIgniterRouter;
use Config\Services; use Config\Services;
use Override;
class Router extends CodeIgniterRouter class Router extends CodeIgniterRouter
{ {
@ -30,6 +31,7 @@ class Router extends CodeIgniterRouter
* *
* @return boolean Whether the route was matched or not. * @return boolean Whether the route was matched or not.
*/ */
#[Override]
protected function checkRoutes(string $uri): bool protected function checkRoutes(string $uri): bool
{ {
$routes = $this->collection->getRoutes($this->collection->getHTTPVerb()); $routes = $this->collection->getRoutes($this->collection->getHTTPVerb());

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace App\Libraries; namespace App\Libraries;
use DOMDocument; use DOMDocument;
use Override;
use SimpleXMLElement; use SimpleXMLElement;
class SimpleRSSElement extends SimpleXMLElement class SimpleRSSElement extends SimpleXMLElement
@ -47,6 +48,7 @@ class SimpleRSSElement extends SimpleXMLElement
* *
* @return static The addChild method returns a SimpleXMLElement object representing the child added to the XML node. * @return static The addChild method returns a SimpleXMLElement object representing the child added to the XML node.
*/ */
#[Override]
public function addChild($name, $value = null, $namespace = null, $escape = true): static public function addChild($name, $value = null, $namespace = null, $escape = true): static
{ {
$newChild = parent::addChild($name, null, $namespace); $newChild = parent::addChild($name, null, $namespace);

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace ViewComponents; namespace ViewComponents;
use Override;
abstract class Component implements ComponentInterface abstract class Component implements ComponentInterface
{ {
/** /**
@ -81,6 +83,7 @@ abstract class Component implements ComponentInterface
return stringify_attributes($this->attributes); return stringify_attributes($this->attributes);
} }
#[Override]
public function render(): string public function render(): string
{ {
return static::class . ': RENDER METHOD NOT IMPLEMENTED'; return static::class . ': RENDER METHOD NOT IMPLEMENTED';

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace ViewComponents; namespace ViewComponents;
use CodeIgniter\View\ViewDecoratorInterface; use CodeIgniter\View\ViewDecoratorInterface;
use Override;
/** /**
* Enables rendering of View Components into the views. * Enables rendering of View Components into the views.
@ -15,6 +16,7 @@ class Decorator implements ViewDecoratorInterface
{ {
private static ?ComponentRenderer $components = null; private static ?ComponentRenderer $components = null;
#[Override]
public static function decorate(string $html): string public static function decorate(string $html): string
{ {
$components = self::factory(); $components = self::factory();

View File

@ -12,6 +12,7 @@ namespace App\Models;
use App\Entities\Actor; use App\Entities\Actor;
use Modules\Fediverse\Models\ActorModel as FediverseActorModel; use Modules\Fediverse\Models\ActorModel as FediverseActorModel;
use Override;
class ActorModel extends FediverseActorModel class ActorModel extends FediverseActorModel
{ {
@ -20,6 +21,7 @@ class ActorModel extends FediverseActorModel
*/ */
protected $returnType = Actor::class; protected $returnType = Actor::class;
#[Override]
public function getActorById(int $id): ?Actor public function getActorById(int $id): ?Actor
{ {
return $this->find($id); return $this->find($id);

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Alert extends Component class Alert extends Component
@ -23,6 +24,7 @@ class Alert extends Component
*/ */
protected string $variant = 'default'; protected string $variant = 'default';
#[Override]
public function render(): string public function render(): string
{ {
$variantData = match ($this->variant) { $variantData = match ($this->variant) {

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Button extends Component class Button extends Component
@ -32,6 +33,7 @@ class Button extends Component
protected bool $isExternal = false; protected bool $isExternal = false;
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('shadow gap-x-2 flex-shrink-0 inline-flex items-center justify-center font-semibold rounded-full'); $this->mergeClass('shadow gap-x-2 flex-shrink-0 inline-flex items-center justify-center font-semibold rounded-full');

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components\Charts; namespace App\Views\Components\Charts;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class ChartsComponent extends Component class ChartsComponent extends Component
@ -16,6 +17,7 @@ class ChartsComponent extends Component
protected string $type; protected string $type;
#[Override]
public function render(): string public function render(): string
{ {
$subtitleBlock = ''; $subtitleBlock = '';

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class DashboardCard extends Component class DashboardCard extends Component
@ -23,6 +24,7 @@ class DashboardCard extends Component
$this->subtitle = html_entity_decode($value); $this->subtitle = html_entity_decode($value);
} }
#[Override]
public function render(): string public function render(): string
{ {
$glyph = icon($this->glyph, [ $glyph = icon($this->glyph, [

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Exception; use Exception;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class DropdownMenu extends Component class DropdownMenu extends Component
@ -34,6 +35,7 @@ class DropdownMenu extends Component
$this->items = json_decode(htmlspecialchars_decode($value), true); $this->items = json_decode(htmlspecialchars_decode($value), true);
} }
#[Override]
public function render(): string public function render(): string
{ {
if ($this->items === []) { if ($this->items === []) {

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use App\Views\Components\Hint; use App\Views\Components\Hint;
use Override;
class Checkbox extends FormComponent class Checkbox extends FormComponent
{ {
@ -18,6 +19,7 @@ class Checkbox extends FormComponent
protected bool $isChecked = false; protected bool $isChecked = false;
#[Override]
public function render(): string public function render(): string
{ {
$checkboxInput = form_checkbox( $checkboxInput = form_checkbox(

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class ColorRadioButton extends FormComponent class ColorRadioButton extends FormComponent
{ {
protected array $props = ['isSelected']; protected array $props = ['isSelected'];
@ -14,6 +16,7 @@ class ColorRadioButton extends FormComponent
protected bool $isSelected = false; protected bool $isSelected = false;
#[Override]
public function render(): string public function render(): string
{ {
$data = [ $data = [

View File

@ -4,12 +4,15 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class DatetimePicker extends FormComponent class DatetimePicker extends FormComponent
{ {
protected array $attributes = [ protected array $attributes = [
'data-picker' => 'datetime', 'data-picker' => 'datetime',
]; ];
#[Override]
public function render(): string public function render(): string
{ {
$dateInput = form_input([ $dateInput = form_input([

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Field extends Component class Field extends Component
@ -37,6 +38,7 @@ class Field extends Component
protected string $hint = ''; protected string $hint = '';
#[Override]
public function render(): string public function render(): string
{ {
$helperText = ''; $helperText = '';

View File

@ -4,12 +4,14 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Helper extends Component class Helper extends Component
{ {
// TODO: add type with error and show errors inline // TODO: add type with error and show errors inline
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('text-skin-muted'); $this->mergeClass('text-skin-muted');

View File

@ -4,12 +4,15 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class Input extends FormComponent class Input extends FormComponent
{ {
protected array $props = ['type']; protected array $props = ['type'];
protected string $type = 'text'; protected string $type = 'text';
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('w-full border-contrast rounded-lg focus:border-contrast border-3 focus-within:ring-accent'); $this->mergeClass('w-full border-contrast rounded-lg focus:border-contrast border-3 focus-within:ring-accent');

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use App\Views\Components\Hint; use App\Views\Components\Hint;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Label extends Component class Label extends Component
@ -21,6 +22,7 @@ class Label extends Component
protected bool $isOptional = false; protected bool $isOptional = false;
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('text-sm font-semibold'); $this->mergeClass('text-sm font-semibold');

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class MarkdownEditor extends FormComponent class MarkdownEditor extends FormComponent
{ {
protected array $props = ['disallowList']; protected array $props = ['disallowList'];
@ -18,6 +20,7 @@ class MarkdownEditor extends FormComponent
$this->disallowList = explode(',', $value); $this->disallowList = explode(',', $value);
} }
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('w-full flex flex-col bg-elevated border-3 border-contrast rounded-lg overflow-hidden focus-within:ring-accent'); $this->mergeClass('w-full flex flex-col bg-elevated border-3 border-contrast rounded-lg overflow-hidden focus-within:ring-accent');

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class Radio extends FormComponent class Radio extends FormComponent
{ {
protected array $props = ['isChecked']; protected array $props = ['isChecked'];
@ -14,6 +16,7 @@ class Radio extends FormComponent
protected bool $isChecked = false; protected bool $isChecked = false;
#[Override]
public function render(): string public function render(): string
{ {
$radioInput = form_radio( $radioInput = form_radio(

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use App\Views\Components\Hint; use App\Views\Components\Hint;
use Override;
class RadioButton extends FormComponent class RadioButton extends FormComponent
{ {
@ -18,6 +19,7 @@ class RadioButton extends FormComponent
protected string $hint = ''; protected string $hint = '';
#[Override]
public function render(): string public function render(): string
{ {
$data = [ $data = [

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use App\Views\Components\Hint; use App\Views\Components\Hint;
use Override;
class RadioGroup extends FormComponent class RadioGroup extends FormComponent
{ {
@ -25,6 +26,7 @@ class RadioGroup extends FormComponent
protected string $hint = ''; protected string $hint = '';
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('flex flex-col'); $this->mergeClass('flex flex-col');

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Section extends Component class Section extends Component
@ -14,6 +15,7 @@ class Section extends Component
protected string $subtitle = ''; protected string $subtitle = '';
#[Override]
public function render(): string public function render(): string
{ {
$subtitle = $this->subtitle === '' ? '' : '<p class="text-sm text-skin-muted">' . $this->subtitle . '</p>'; $subtitle = $this->subtitle === '' ? '' : '<p class="text-sm text-skin-muted">' . $this->subtitle . '</p>';

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class Select extends FormComponent class Select extends FormComponent
{ {
protected array $props = ['options', 'defaultValue']; protected array $props = ['options', 'defaultValue'];
@ -19,6 +21,7 @@ class Select extends FormComponent
protected string $defaultValue = ''; protected string $defaultValue = '';
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('w-full focus:border-contrast border-3 rounded-lg bg-elevated border-contrast'); $this->mergeClass('w-full focus:border-contrast border-3 rounded-lg bg-elevated border-contrast');

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class SelectMulti extends FormComponent class SelectMulti extends FormComponent
{ {
protected array $props = ['options', 'defaultValue']; protected array $props = ['options', 'defaultValue'];
@ -24,6 +26,7 @@ class SelectMulti extends FormComponent
*/ */
protected array $defaultValue = []; protected array $defaultValue = [];
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('w-full bg-elevated border-3 border-contrast rounded-lg relative'); $this->mergeClass('w-full bg-elevated border-3 border-contrast rounded-lg relative');

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class Textarea extends FormComponent class Textarea extends FormComponent
{ {
public function setValue(?string $value): void public function setValue(?string $value): void
@ -13,6 +15,7 @@ class Textarea extends FormComponent
} }
} }
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('bg-elevated w-full rounded-lg border-3 border-contrast focus:border-contrast focus-within:ring-accent'); $this->mergeClass('bg-elevated w-full rounded-lg border-3 border-contrast focus:border-contrast focus-within:ring-accent');

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use App\Views\Components\Hint; use App\Views\Components\Hint;
use Override;
class Toggler extends FormComponent class Toggler extends FormComponent
{ {
@ -18,6 +19,7 @@ class Toggler extends FormComponent
protected bool $isChecked = false; protected bool $isChecked = false;
#[Override]
public function render(): string public function render(): string
{ {
$this->mergeClass('relative justify-between inline-flex items-center gap-x-2'); $this->mergeClass('relative justify-between inline-flex items-center gap-x-2');

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Views\Components\Forms; namespace App\Views\Components\Forms;
use Override;
class XMLEditor extends FormComponent class XMLEditor extends FormComponent
{ {
protected array $props = ['content']; protected array $props = ['content'];
@ -23,6 +25,7 @@ class XMLEditor extends FormComponent
$this->content = htmlspecialchars_decode($value); $this->content = htmlspecialchars_decode($value);
} }
#[Override]
public function render(): string public function render(): string
{ {
$this->attributes['slot'] = 'textarea'; $this->attributes['slot'] = 'textarea';

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Heading extends Component class Heading extends Component
@ -17,6 +18,7 @@ class Heading extends Component
*/ */
protected string $size = 'base'; protected string $size = 'base';
#[Override]
public function render(): string public function render(): string
{ {
$sizeClass = match ($this->size) { $sizeClass = match ($this->size) {

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Hint extends Component class Hint extends Component
@ -13,6 +14,7 @@ class Hint extends Component
'tabindex' => '0', 'tabindex' => '0',
]; ];
#[Override]
public function render(): string public function render(): string
{ {
$this->attributes['title'] = $this->slot; $this->attributes['title'] = $this->slot;

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class Pill extends Component class Pill extends Component
@ -23,6 +24,7 @@ class Pill extends Component
protected string $hint = ''; protected string $hint = '';
#[Override]
public function render(): string public function render(): string
{ {
$variantClass = match ($this->variant) { $variantClass = match ($this->variant) {

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class ReadMore extends Component class ReadMore extends Component
@ -12,6 +13,7 @@ class ReadMore extends Component
protected string $id; protected string $id;
#[Override]
public function render(): string public function render(): string
{ {
$readMoreLabel = lang('Common.read_more'); $readMoreLabel = lang('Common.read_more');

View File

@ -4,10 +4,12 @@ declare(strict_types=1);
namespace App\Views\Components; namespace App\Views\Components;
use Override;
use ViewComponents\Component; use ViewComponents\Component;
class SeeMore extends Component class SeeMore extends Component
{ {
#[Override]
public function render(): string public function render(): string
{ {
$seeMoreLabel = lang('Common.see_more'); $seeMoreLabel = lang('Common.see_more');

View File

@ -5,11 +5,13 @@ declare(strict_types=1);
namespace App\Views\Decorators; namespace App\Views\Decorators;
use CodeIgniter\View\ViewDecoratorInterface; use CodeIgniter\View\ViewDecoratorInterface;
use Override;
class SiteHead implements ViewDecoratorInterface class SiteHead implements ViewDecoratorInterface
{ {
private static int $renderedCount = 0; private static int $renderedCount = 0;
#[Override]
public static function decorate(string $html): string public static function decorate(string $html): string
{ {
if (url_is(config('Admin')->gateway . '*') || url_is(config('Install')->gateway)) { if (url_is(config('Admin')->gateway . '*') || url_is(config('Install')->gateway)) {

View File

@ -6,7 +6,7 @@
"homepage": "https://castopod.org", "homepage": "https://castopod.org",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"require": { "require": {
"php": "^8.1", "php": "^8.3",
"adaures/ipcat-php": "^v1.0.0", "adaures/ipcat-php": "^v1.0.0",
"adaures/podcast-persons-taxonomy": "^v1.0.1", "adaures/podcast-persons-taxonomy": "^v1.0.1",
"aws/aws-sdk-php": "^3.305.4", "aws/aws-sdk-php": "^3.305.4",

View File

@ -4,7 +4,7 @@
# ⚠️ NOT optimized for production # ⚠️ NOT optimized for production
# should be used only for continuous integration # should be used only for continuous integration
#--------------------------------------------------- #---------------------------------------------------
FROM php:8.1-fpm-alpine3.19 FROM php:8.3-fpm-alpine3.20
LABEL maintainer="Yassine Doghri <yassine@doghri.fr>" LABEL maintainer="Yassine Doghri <yassine@doghri.fr>"

View File

@ -11,7 +11,7 @@ RUN apt-get update && \
mv supercronic /usr/local/bin mv supercronic /usr/local/bin
FROM docker.io/php:8.1-fpm FROM docker.io/php:8.3-fpm
COPY --from=CRON_BUILDER /usr/local/bin/supercronic /usr/local/bin/supercronic COPY --from=CRON_BUILDER /usr/local/bin/supercronic /usr/local/bin/supercronic

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1, alebo vyššia ### PHP v8.3, alebo vyššia
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -19,15 +19,15 @@ Si preferiu utilitzar Docker, podeu ometre això i anar directament a la
## Requisits ## Requisits
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL versió 5.7 o superior o MariaDB versió 10.2 o superior - MySQL versió 5.7 o superior o MariaDB versió 10.2 o superior
- Support d'HTTPS - Support d'HTTPS
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -19,15 +19,15 @@ direkt zur [Docker-Dokumentation](./docker.md) für Castopod gehen.
## Voraussetzungen ## Voraussetzungen
- PHP v8.1 oder höher - PHP v8.3 oder höher
- MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher - MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher
- HTTPS-Unterstützung - HTTPS-Unterstützung
- Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden - Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden
Anfragen zu überprüfen Anfragen zu überprüfen
### PHP v8.1 oder höher ### PHP v8.3 oder höher
PHP Version 8.1 oder höher ist erforderlich, mit folgenden Erweiterungen PHP Version 8.3 oder höher ist erforderlich, mit folgenden Erweiterungen
installiert: installiert:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Vereisten ## Vereisten
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -9,15 +9,15 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers.
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -19,15 +19,15 @@ Si prefieres usar Docker, puedes saltarte esto e ir directamente a la
## Requisitos ## Requisitos
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior - MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior
- Soporte HTTPS - Soporte HTTPS
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -19,15 +19,15 @@ directement à la [documentation Docker](./docker.md) pour Castopod.
## Prérequis ## Prérequis
- PHP v8.1 ou supérieure - PHP v8.3 ou supérieure
- MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure - MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure
- Prise en charge HTTPS - Prise en charge HTTPS
- Une horloge [synchronisée ntp](https://wiki.debian.org/NTP) pour valider les - Une horloge [synchronisée ntp](https://wiki.debian.org/NTP) pour valider les
requêtes fédérés entrantes requêtes fédérés entrantes
### PHP v8.1 ou supérieure ### PHP v8.3 ou supérieure
PHP version 8.1 ou supérieure est requise, avec les extensions suivantes PHP version 8.3 ou supérieure est requise, avec les extensions suivantes
installées : installées :
- [intl](https://www.php.net/manual/fr/intl.requirements.php) - [intl](https://www.php.net/manual/fr/intl.requirements.php)

View File

@ -19,15 +19,15 @@ directement à la [documentation Docker](./docker.md) pour Castopod.
## Prérequis ## Prérequis
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure - MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure
- Prise en charge HTTPS - Prise en charge HTTPS
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://www.php.net/manual/fr/intl.requirements.php) - [intl](https://www.php.net/manual/fr/intl.requirements.php)
- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) - [libcurl](https://www.php.net/manual/fr/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -19,15 +19,15 @@ Viss du helst vil bruka Docker, kan du hoppa over dette og gå rett til
## Krav ## Krav
- PHP v8.1 eller nyare - PHP v8.3 eller nyare
- MySQL versjon 5.7 eller nyare, eller MariaDB versjon 10.2 eller nyare - MySQL versjon 5.7 eller nyare, eller MariaDB versjon 10.2 eller nyare
- Støtte for HTTPS - Støtte for HTTPS
- Ei [ntp-synkronisert klokke](https://wiki.debian.org/NTP) for å stadfesta - Ei [ntp-synkronisert klokke](https://wiki.debian.org/NTP) for å stadfesta
innkomande førespurnader frå allheimen innkomande førespurnader frå allheimen
### PHP v8.1 eller nyare ### PHP v8.3 eller nyare
Du treng PHP versjon 8.1 eller nyare, og mde desse tillegga: Du treng PHP versjon 8.3 eller nyare, og mde desse tillegga:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

View File

@ -18,15 +18,15 @@ If you prefer using Docker, you may skip this and go straight to the
## Requirements ## Requirements
- PHP v8.1 or higher - PHP v8.3 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support - HTTPS support
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
incoming requests incoming requests
### PHP v8.1 or higher ### PHP v8.3 or higher
PHP version 8.1 or higher is required, with the following extensions installed: PHP version 8.3 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php) - [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php)

Some files were not shown because too many files have changed in this diff Show More