diff --git a/exam/.htaccess b/exam/.htaccess new file mode 100644 index 0000000..b9e2c1b --- /dev/null +++ b/exam/.htaccess @@ -0,0 +1,37 @@ +RewriteEngine On + +## +## You may need to uncomment the following line for some hosting environments, +## if you have installed to a subdirectory, enter the name here also. +## +RewriteBase /phpCourse/exam + +## +## Black listed folders +## +RewriteRule ^app/.* index.php [L,NC] +RewriteRule ^config/.* index.php [L,NC] +RewriteRule ^vendor/.* index.php [L,NC] +RewriteRule ^routes/.* index.php [L,NC] +RewriteRule ^pages/.* index.php [L,NC] + +## +## White listed folders +## +RewriteCond %{REQUEST_FILENAME} -f +RewriteCond %{REQUEST_FILENAME} !/api/docs/.* +RewriteCond %{REQUEST_FILENAME} !/assets/.* +RewriteRule !^index.php index.php [L,NC] + +## +## Block all PHP files, except index +## +RewriteCond %{REQUEST_FILENAME} -f +RewriteCond %{REQUEST_FILENAME} \.php$ +RewriteRule !^index.php index.php [L,NC] + +## +## Standard routes +## +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^ index.php [L] \ No newline at end of file diff --git a/exam/api/.htaccess b/exam/api/.htaccess new file mode 100644 index 0000000..583de22 --- /dev/null +++ b/exam/api/.htaccess @@ -0,0 +1,5 @@ +Order deny,allow +Deny From All + + Allow From All + \ No newline at end of file diff --git a/exam/api/docs/.htaccess b/exam/api/docs/.htaccess new file mode 100644 index 0000000..8c9f73c --- /dev/null +++ b/exam/api/docs/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Allow from All \ No newline at end of file diff --git a/exam/api/docs/index.html b/exam/api/docs/index.html new file mode 100644 index 0000000..2fbdaa8 --- /dev/null +++ b/exam/api/docs/index.html @@ -0,0 +1 @@ +DOCUMENTATION diff --git a/exam/api/index.php b/exam/api/index.php new file mode 100644 index 0000000..e495dfe --- /dev/null +++ b/exam/api/index.php @@ -0,0 +1,4 @@ + "phpCourse/exam/", +]; diff --git a/exam/index.php b/exam/index.php new file mode 100644 index 0000000..4abe957 --- /dev/null +++ b/exam/index.php @@ -0,0 +1,3 @@ + + + + + + + + Page not Found + + + + +
+
+
+

404 Page not Found

+

Page does not exist.

+
+
+
+ + + \ No newline at end of file diff --git a/exam/pages/500.php b/exam/pages/500.php new file mode 100644 index 0000000..a43b617 --- /dev/null +++ b/exam/pages/500.php @@ -0,0 +1,23 @@ + + + + + + + + Server Error + + + + +
+
+
+

500 Internal Server Error

+
getMessage() ?>
+
+
+
+ + + \ No newline at end of file diff --git a/exam/pages/index.html b/exam/pages/index.html new file mode 100644 index 0000000..ac9a82d --- /dev/null +++ b/exam/pages/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite + React + TS + + + +
+ + + diff --git a/exam/routes/.htaccess b/exam/routes/.htaccess new file mode 100644 index 0000000..872a3ce --- /dev/null +++ b/exam/routes/.htaccess @@ -0,0 +1,3 @@ +Order deny,allow +Deny from all +Allow from 127.0.0.1 \ No newline at end of file diff --git a/exam/routes/routes.php b/exam/routes/routes.php new file mode 100644 index 0000000..8408996 --- /dev/null +++ b/exam/routes/routes.php @@ -0,0 +1,13 @@ +app = require_once __DIR__ . "/../../config/app.php"; + } + + protected function __clone() + { + } + + public function __wakeup() + { + throw new \Exception("Cannot unserialize a singleton."); + } + + private static function getInstance(): Config + { + $cls = static::class; + if (!isset(self::$instances[$cls])) { + self::$instances[$cls] = new static(); + } + + return self::$instances[$cls]; + } + + public static function getBasePath() + { + return Config::getInstance()->app["basePath"]; + } +} diff --git a/exam/vendor/headers/headers.php b/exam/vendor/headers/headers.php new file mode 100644 index 0000000..cd8147c --- /dev/null +++ b/exam/vendor/headers/headers.php @@ -0,0 +1,22 @@ +