summaryrefslogtreecommitdiff
path: root/src/Http/LegacyUrlGenerator.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Http/LegacyUrlGenerator.php')
-rw-r--r--src/Http/LegacyUrlGenerator.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Http/LegacyUrlGenerator.php b/src/Http/LegacyUrlGenerator.php
new file mode 100644
index 00000000..b9f8b7f1
--- /dev/null
+++ b/src/Http/LegacyUrlGenerator.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Engelsystem\Http;
+
+/**
+ * Provides urls when webserver rewriting is disabled.
+ *
+ * The urls have the form <app url>/index.php?p=<path>&<parameters>
+ */
+class LegacyUrlGenerator extends UrlGenerator
+{
+ /**
+ * @param string $path
+ * @param array $parameters
+ * @return string urls in the form <app url>/index.php?p=<path>&<parameters>
+ */
+ public function to($path, $parameters = [])
+ {
+ $page = ltrim($path, '/');
+ if (!empty($page)) {
+ $page = str_replace('-', '_', $page);
+ $parameters = array_merge(['p' => $page], $parameters);
+ }
+
+ $uri = parent::to('index.php', $parameters);
+ $uri = preg_replace('~(/index\.php)+~', '/index.php', $uri);
+ $uri = preg_replace('~(/index\.php)$~', '/', $uri);
+
+ return $uri;
+ }
+}