ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ILIAS\StaticURL\Builder\StandardURIBuilder Class Reference
+ Inheritance diagram for ILIAS\StaticURL\Builder\StandardURIBuilder:
+ Collaboration diagram for ILIAS\StaticURL\Builder\StandardURIBuilder:

Public Member Functions

 __construct (private Configuration $config,)
 
 buildLegacy (?int $a_ref_id, string $a_type='', array $a_params=[], string $append="")
 
 build (string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
 
 buildTarget (string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
 
 getBaseURI ()
 
 build (string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
 
 buildLegacy (?int $a_ref_id, string $a_type='', array $a_params=[], string $append="")
 
 getBaseURI ()
 

Data Fields

const string SHORT = '/go/'
 
const string LONG = '/goto.php/'
 

Private Attributes

URI $cache = null
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 31 of file StandardURIBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\StaticURL\Builder\StandardURIBuilder::__construct ( private Configuration  $config)

Definition at line 35 of file StandardURIBuilder.php.

37 {
38 }

Member Function Documentation

◆ build()

ILIAS\StaticURL\Builder\StandardURIBuilder::build ( string  $namespace,
?ReferenceId  $reference_id = null,
array  $additional_parameters = [] 
)

Implements ILIAS\StaticURL\Builder\URIBuilder.

Definition at line 71 of file StandardURIBuilder.php.

75 : URI {
76 $uri = $this->getBaseURI()
77 . $this->config->get(Config::STATIC_LINK_ENDPOINT)
78 . $this->buildTarget($namespace, $reference_id, $additional_parameters);
79
80 return new URI($uri);
81 }
The scope of this class is split ilias-conform URI's into components.
Definition: URI.php:35
buildTarget(string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
if($err=$client->getError()) $namespace

◆ buildLegacy()

ILIAS\StaticURL\Builder\StandardURIBuilder::buildLegacy ( ?int  $a_ref_id,
string  $a_type = '',
array  $a_params = [],
string  $append = "" 
)
Deprecated:
This only replaces the code from ilLink, use @build() instead.

Implements ILIAS\StaticURL\Builder\URIBuilder.

Definition at line 43 of file StandardURIBuilder.php.

48 : string {
49 global $DIC; // we do not inject this since it's e depreacted method
50
51 $ilObjDataCache = $DIC["ilObjDataCache"];
52
53 if ($a_type === '' && $a_ref_id) {
54 $a_type = $ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($a_ref_id));
55 }
56
57 $a_params = array_merge($a_params, [$append]);
58 $a_params = array_filter($a_params, static fn($value): bool => $value !== "");
59
60 if (!empty($a_type)) {
61 return (string) $this->build(
62 $a_type,
63 $a_ref_id !== null ? new ReferenceId($a_ref_id) : null,
64 $a_params
65 );
66 }
67
68 return '';
69 }
build(string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
global $DIC
Definition: shib_login.php:26

◆ buildTarget()

ILIAS\StaticURL\Builder\StandardURIBuilder::buildTarget ( string  $namespace,
?ReferenceId  $reference_id = null,
array  $additional_parameters = [] 
)

Definition at line 83 of file StandardURIBuilder.php.

87 : string {
88 return $namespace
89 . ($reference_id !== null ? '/' . $reference_id->toInt() : '')
90 . '/'
91 . implode('/', $additional_parameters);
92 }

◆ getBaseURI()

ILIAS\StaticURL\Builder\StandardURIBuilder::getBaseURI ( )

Implements ILIAS\StaticURL\Builder\URIBuilder.

Definition at line 94 of file StandardURIBuilder.php.

94 : URI
95 {
96 if ($this->cache !== null) {
97 return $this->cache;
98 }
99
100 $base_path = $this->config->get(Config::BASE_URL);
101
102 $offset = match (true) {
103 str_contains((string) $base_path, self::SHORT) => strpos((string) $base_path, self::SHORT),
104 str_contains((string) $base_path, self::LONG) => strpos((string) $base_path, rtrim(self::LONG, '/')),
105 str_contains((string) $base_path, rtrim(self::LONG, '/')) => strpos((string) $base_path, rtrim(self::LONG, '/')),
106 str_contains((string) $base_path, 'Customizing') => strpos((string) $base_path, 'Customizing'),
107 str_contains((string) $base_path, 'src') => strpos((string) $base_path, 'src'),
108 str_contains((string) $base_path, 'webservices') => strpos((string) $base_path, 'webservices'),
109 default => false,
110 };
111
112 if ($offset === false) {
113 return $this->cache = new URI(trim((string) $base_path, '/'));
114 }
115
116 $uri_string = substr(
117 (string) $base_path,
118 0,
119 $offset
120 );
121 return $this->cache = new URI(
122 trim($uri_string, '/')
123 );
124 }

Field Documentation

◆ $cache

URI ILIAS\StaticURL\Builder\StandardURIBuilder::$cache = null
private

Definition at line 33 of file StandardURIBuilder.php.

◆ LONG

◆ SHORT


The documentation for this class was generated from the following file: