Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
1062abb
Component Revision: Environment — bootstrap wiring + configuration cl…
chfsx Apr 16, 2026
1f0b0fd
Component Revision: Database — External/Internal PDO classes + DBLega…
chfsx Apr 16, 2026
2ebddb8
Component Revision: HTTP — bootstrap wiring + HeaderSettings
chfsx Apr 16, 2026
0987e67
Component Revision: Filesystem — bootstrap wiring + typed filesystem …
chfsx Apr 16, 2026
8f1c1ac
Component Revision: FileDelivery — bootstrap wiring + FileDeliverySer…
chfsx Apr 16, 2026
9621a01
Component Revision: FileServices — bootstrap wiring + lazy FileServic…
chfsx Apr 16, 2026
c1e9eff
Component Revision: ResourceStorage — full bootstrap migration
chfsx Apr 16, 2026
df7b0a3
Component Revision: Init — AllModernComponents bridge + legacy init c…
chfsx Apr 16, 2026
b81a08a
Component Revision: DI — update Container for bootstrapped services
chfsx Apr 16, 2026
8d20418
Component Revision: File — adapt to bootstrapped APIs
chfsx Apr 16, 2026
7a3138a
Component Revision: FileUpload — adapt to bootstrapped IRSS + Filesys…
chfsx Apr 16, 2026
51e0d71
Component Revision: UI — update ExamplesTest for changed bootstrap
chfsx Apr 16, 2026
8f0694e
Component Revision: WOPI — adapt to bootstrapped FileDelivery + Files…
chfsx Apr 16, 2026
954a4c1
Component Revision: Init — migrate ini file handling to bootstrapped …
chfsx Apr 16, 2026
0ff488b
Migrate upload pre-processors to component bootstrap
chfsx Apr 16, 2026
36a8463
[FIX] blacklist empty in some cases
chfsx Apr 16, 2026
d4420ee
Migrate StaticURL component to bootstrap; replace ArtifactObjective w…
chfsx Apr 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions components/ILIAS/Authentication/Authentication.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,7 @@ public function offsetUnset(mixed $offset): void
new Component\Resource\ComponentJS($this, 'js/dist/SessionReminder.min.js');
$contribute[User\Settings\UserSettings::class] = fn() =>
new Authentication\UserSettings\Settings();
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\Authentication\StaticUrlHandler();
}
}
14 changes: 8 additions & 6 deletions components/ILIAS/Authentication/classes/StaticUrlHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@

class StaticUrlHandler extends BaseHandler implements Handler
{
private readonly ilLanguage $language;
private ?ilLanguage $language = null;

public function __construct()
private function language(): ilLanguage
{
global $DIC;
$this->language = $DIC->language();
parent::__construct();
if ($this->language === null) {
global $DIC;
$this->language = $DIC->language();
}
return $this->language;
}

public function getNamespace(): string
Expand All @@ -51,7 +53,7 @@ public function handle(Request $request, Context $context, Factory $response_fac
return match ($additional_params) {
'login' => $response_factory->can('login.php?' . http_build_query([
'cmd' => 'force_login',
'lang' => $this->language->getLangKey(),
'lang' => $this->language()->getLangKey(),
])),
};
}
Expand Down
2 changes: 2 additions & 0 deletions components/ILIAS/Badge/Badge.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,7 @@ public function init(
$this,
'PublicProfileBadges.js'
);
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\Badge\URL\StaticUrlHandler();
}
}
2 changes: 2 additions & 0 deletions components/ILIAS/Blog/Blog.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,7 @@ public function init(
new \ILIAS\Blog\Setup\Agent(
$pull[\ILIAS\Refinery\Factory::class]
);
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\PermanentLink\StaticURLHandler();
}
}
2 changes: 2 additions & 0 deletions components/ILIAS/Calendar/Calendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,7 @@ public function init(
$contribute[Component\Resource\PublicAsset::class] = fn() =>
new Component\Resource\NodeModule("eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js");
*/
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\Calendar\URL\CalendarStaticURLHandler();
}
}
2 changes: 2 additions & 0 deletions components/ILIAS/Certificate/Certificate.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,7 @@ public function init(
new \ilCertificatSetupAgent(
$pull[\ILIAS\Refinery\Factory::class]
);
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\Certificate\StaticUrlHandler();
}
}
2 changes: 2 additions & 0 deletions components/ILIAS/Contact/Contact.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,7 @@ public function init(
new Component\Resource\ComponentJS($this, "buddy_system.js");
$contribute[User\Settings\UserSettings::class] = fn() =>
new Contact\UserSettings\Settings();
$contribute[\ILIAS\StaticURL\Handler\Handler::class] = static fn(): \ILIAS\StaticURL\Handler\Handler =>
new \ILIAS\Contact\URL\StaticUrlHandler();
}
}
15 changes: 4 additions & 11 deletions components/ILIAS/DI/src/Container.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
use ILIAS\Filesystem\Util\Convert\Converters;
use ILIAS\Repository;
use ILIAS\Skill\Service\SkillService;
use ILIAS\HTTP\GlobalHttpState;
use ILIAS\Filesystem\Configuration\FilesystemConfig;

/**
* Customizing of pimple-DIC for ILIAS.
Expand All @@ -34,8 +36,6 @@
*/
class Container extends \Pimple\Container
{
private ?\ilFileServicesSettings $file_service_settings = null;

/**
* Get interface to the Database.
*/
Expand Down Expand Up @@ -402,16 +402,9 @@ public function infoScreen(): \ILIAS\InfoScreen\Service
return new \ILIAS\InfoScreen\Service($this);
}

public function fileServiceSettings(): \ilFileServicesSettings
public function fileServiceSettings(): FilesystemConfig
{
if ($this->file_service_settings === null) {
$this->file_service_settings = new \ilFileServicesSettings(
$this->settings(),
$this->clientIni(),
$this->database()
);
}
return $this->file_service_settings;
return $this[FilesystemConfig::class];
}


Expand Down
28 changes: 16 additions & 12 deletions components/ILIAS/Database/Database.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,26 @@
use ILIAS\Component\Component;
use ILIAS\Setup\Agent;
use ILIAS\Refinery\Factory;
use ILIAS\Database\PDO\External;

class Database implements Component
{
public function init(
array | \ArrayAccess &$define,
array | \ArrayAccess &$implement,
array | \ArrayAccess &$use,
array | \ArrayAccess &$contribute,
array | \ArrayAccess &$seek,
array | \ArrayAccess &$provide,
array | \ArrayAccess &$pull,
array | \ArrayAccess &$internal,
array|\ArrayAccess &$define,
array|\ArrayAccess &$implement,
array|\ArrayAccess &$use,
array|\ArrayAccess &$contribute,
array|\ArrayAccess &$seek,
array|\ArrayAccess &$provide,
array|\ArrayAccess &$pull,
array|\ArrayAccess &$internal,
): void {
$contribute[Agent::class] = static fn(): \ilDatabaseSetupAgent =>
new \ilDatabaseSetupAgent(
$pull[Factory::class]
);
$define[] = External::class;

$implement[External::class] = static fn(): External => new Database\DBLegacyProxy();

$contribute[Agent::class] = static fn(): \ilDatabaseSetupAgent => new \ilDatabaseSetupAgent(
$pull[Factory::class]
);
}
}
28 changes: 28 additions & 0 deletions components/ILIAS/Database/classes/PDO/External.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

/**
* This file is part of ILIAS, a powerful learning management system
* published by ILIAS open source e-Learning e.V.
*
* ILIAS is licensed with the GPL-3.0,
* see https://www.gnu.org/licenses/gpl-3.0.en.html
* You should have received a copy of said license along with the
* source code, too.
*
* If this is not the case or you just want to try ILIAS, you'll find
* us at:
* https://www.ilias.de
* https://github.com/ILIAS-eLearning
*
*********************************************************************/

declare(strict_types=1);

namespace ILIAS\Database\PDO;

use ilDBInterface;
use ilDBPdoInterface;

interface External extends ilDBInterface, ilDBPdoInterface
{
}
4 changes: 1 addition & 3 deletions components/ILIAS/Database/classes/PDO/Internal.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,9 @@

namespace ILIAS\Database\PDO;

use ilDBInterface;
use ilDBPdoInterface;
use ILIAS\Database\FieldDefinition;

interface Internal extends ilDBInterface, ilDBPdoInterface
interface Internal extends External
{
public function getFieldDefinition(): ?FieldDefinition;
public function getIndexName(string $index_name_base): string;
Expand Down
Loading
Loading