ILIAS  trunk Revision v11.0_alpha-1831-g8615d53dadb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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 string $ILIAS_HTTP_PATH, private bool $short_url_possible=false)
 
 build (string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
 
 buildTarget (string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
 
 getBaseURI ()
 

Data Fields

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

Detailed Description

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

Definition at line 29 of file StandardURIBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\StaticURL\Builder\StandardURIBuilder::__construct ( private string  $ILIAS_HTTP_PATH,
private bool  $short_url_possible = false 
)

Definition at line 31 of file StandardURIBuilder.php.

34  {
35  }

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 40 of file StandardURIBuilder.php.

References ILIAS\StaticURL\Builder\StandardURIBuilder\buildTarget(), and ILIAS\StaticURL\Builder\StandardURIBuilder\getBaseURI().

Referenced by ILIAS\StaticURL\Tests\URIBuilderTest\testFullBuilder().

44  : URI {
45  $uri = $this->getBaseURI()
46  . ($this->short_url_possible ? self::SHORT : self::LONG)
47  . $this->buildTarget($namespace, $reference_id, $additional_parameters);
48 
49  return new URI($uri);
50  }
if($err=$client->getError()) $namespace
buildTarget(string $namespace, ?ReferenceId $reference_id=null, array $additional_parameters=[])
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildTarget()

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

Definition at line 52 of file StandardURIBuilder.php.

References null.

Referenced by ILIAS\StaticURL\Builder\StandardURIBuilder\build().

56  : string {
57  return $namespace
58  . ($reference_id !== null ? '/' . $reference_id->toInt() : '')
59  . '/'
60  . implode('/', $additional_parameters);
61  }
if($err=$client->getError()) $namespace
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the caller graph for this function:

◆ getBaseURI()

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

Implements ILIAS\StaticURL\Builder\URIBuilder.

Definition at line 63 of file StandardURIBuilder.php.

Referenced by ILIAS\StaticURL\Builder\StandardURIBuilder\build(), and ILIAS\StaticURL\Tests\URIBuilderTest\testBaseURI().

63  : URI
64  {
65  $base_path = $this->ILIAS_HTTP_PATH;
66 
67  $offset = match (true) {
68  str_contains($base_path, self::SHORT) => strpos($base_path, self::SHORT),
69  str_contains($base_path, self::LONG) => strpos($base_path, rtrim(self::LONG, '/')),
70  str_contains($base_path, rtrim(self::LONG, '/')) => strpos($base_path, rtrim(self::LONG, '/')),
71  str_contains($base_path, 'Customizing') => strpos($base_path, 'Customizing'),
72  str_contains($base_path, 'src') => strpos($base_path, 'src'),
73  str_contains($base_path, 'webservices') => strpos($base_path, 'webservices'),
74  default => false,
75  };
76 
77  if ($offset === false) {
78  return new URI(trim($base_path, '/'));
79  }
80 
81  $uri_string = substr(
82  $base_path,
83  0,
84  $offset
85  );
86  return new URI(
87  trim($uri_string, '/')
88  );
89  }
+ Here is the caller graph for this function:

Field Documentation

◆ LONG

const ILIAS\StaticURL\Builder\StandardURIBuilder::LONG = '/goto.php/'

◆ SHORT

const ILIAS\StaticURL\Builder\StandardURIBuilder::SHORT = '/go/'

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