diff --git a/classes/modules/abstractModule.php b/classes/modules/abstractModule.php index e9bcbe4fb5eaac64e9ad6e5312b9bce8a135077c..9a59faca9eccc8e6abd9adb5df549361bf9f1db9 100644 --- a/classes/modules/abstractModule.php +++ b/classes/modules/abstractModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; abstract class AbstractModule { diff --git a/classes/modules/adminModule.php b/classes/modules/adminModule.php index 9a2cfd3864df851e26a97cb39cd5e983301b4fbe..9fa787286d81c038765d472f7a4e4695131c1901 100644 --- a/classes/modules/adminModule.php +++ b/classes/modules/adminModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\Endpoint; use uib\ub\loadspeakr\HTTPStatus; diff --git a/classes/modules/exportModule.php b/classes/modules/exportModule.php index 5dc6c61b99863b6263b9843d6a63c383f9f86b87..162b71f0e0ba942af781c4291ec7053be5e4e428 100644 --- a/classes/modules/exportModule.php +++ b/classes/modules/exportModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; require_once('abstractModule.php'); diff --git a/classes/modules/redirectModule.php b/classes/modules/redirectModule.php index 614367ff0b90d991008469fc3f9ac835170e2de3..a72d6672ec5f0bc0a34866bee8c1e52f9db30672 100644 --- a/classes/modules/redirectModule.php +++ b/classes/modules/redirectModule.php @@ -1,5 +1,6 @@ -<?php +<?php declare(strict_types=1); +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\MetaDb; require_once('abstractModule.php'); diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php index a75dae07f7df03e10fc1d187d4f835995b82c8c3..ebc3818d43dd2f351d8b2c974207d3999cd8b758 100644 --- a/classes/modules/serviceModule.php +++ b/classes/modules/serviceModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\Convert; use uib\ub\loadspeakr\HTTPStatus; diff --git a/classes/modules/sessionModule.php b/classes/modules/sessionModule.php index 9dbe2bfa8e89000231adfae17fe6f1ca409bb6ee..f2552529d2cc1db7215ee47c107efe26d04e8f12 100644 --- a/classes/modules/sessionModule.php +++ b/classes/modules/sessionModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\HTTPStatus; diff --git a/classes/modules/sparqlFilterModule.php b/classes/modules/sparqlFilterModule.php index d269776ce495a43642a630bbb0a61f28f473c500..2adcb5e9c8a83a1e1bf25b2cd98fa6e8a8186f7f 100644 --- a/classes/modules/sparqlFilterModule.php +++ b/classes/modules/sparqlFilterModule.php @@ -1,5 +1,7 @@ <?php +namespace uib\ub\loadspeakr\modules; + use uib\ub\loadspeakr\Convert; use uib\ub\loadspeakr\HTTPStatus; use uib\ub\loadspeakr\Logging; diff --git a/classes/modules/staticModule.php b/classes/modules/staticModule.php index d438b560078d9b87126b34c0910414d9930a0350..afced4760c5c355d73693f8d1a7919a6f8f2b1f5 100644 --- a/classes/modules/staticModule.php +++ b/classes/modules/staticModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\HTTPStatus; use uib\ub\loadspeakr\Logging; diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php index 76d6cdac24351eec262089e19b1d80e03c0d9282..5ea51363329ed664f658bef0112d565b31aa30f7 100644 --- a/classes/modules/typeModule.php +++ b/classes/modules/typeModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\Convert; use uib\ub\loadspeakr\HTTPStatus; diff --git a/classes/modules/uriModule.php b/classes/modules/uriModule.php index 59c39a65a37a692b50f7441eaf39c7fd4f6b8678..e1f21c68e7e767a053627073728d9c7ff47baec9 100644 --- a/classes/modules/uriModule.php +++ b/classes/modules/uriModule.php @@ -1,4 +1,6 @@ -<?php +<?php declare(strict_types=1); + +namespace uib\ub\loadspeakr\modules; use uib\ub\loadspeakr\Convert; use uib\ub\loadspeakr\HTTPStatus; diff --git a/composer.lock b/composer.lock index b4c4a755d88a41e75fb5f7ed3bcd1d8aee63ded4..67609d55bf92ccfe9fec69a5c3f54a63372bae84 100644 --- a/composer.lock +++ b/composer.lock @@ -1040,18 +1040,21 @@ }, { "name": "ubbdst/haanga", - "version": "v1.0.7", + "version": "1.0.9.1", "source": { "type": "git", "url": "https://github.com/ubbdst/Haanga.git", - "reference": "29f88109c1294415f91842136e9413ae0e6ea3d5" + "reference": "dabfeb1f4b67d735289b77d3b66107fde17077b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ubbdst/Haanga/zipball/29f88109c1294415f91842136e9413ae0e6ea3d5", - "reference": "29f88109c1294415f91842136e9413ae0e6ea3d5", + "url": "https://api.github.com/repos/ubbdst/Haanga/zipball/dabfeb1f4b67d735289b77d3b66107fde17077b6", + "reference": "dabfeb1f4b67d735289b77d3b66107fde17077b6", "shasum": "" }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, "type": "library", "autoload": { "classmap": [ @@ -1066,9 +1069,9 @@ ], "description": "Template compiler for PHP, Django-style (as much as possible). Pretty efficent by avoiding to have anything at run-time.", "support": { - "source": "https://github.com/ubbdst/Haanga/tree/1.0.7" + "source": "https://github.com/ubbdst/Haanga/tree/1.0.9.1" }, - "time": "2016-02-06T07:04:31+00:00" + "time": "2021-09-13T11:30:58+00:00" } ], "packages-dev": [ @@ -1889,33 +1892,33 @@ }, { "name": "phpspec/prophecy", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", + "php": "^7.2 || ~8.0, <8.2", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", + "phpspec/phpspec": "^6.0 || ^7.0", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -1950,22 +1953,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "source": "https://github.com/phpspec/prophecy/tree/1.14.0" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2021-09-10T09:02:12+00:00" }, { "name": "phpstan/phpstan", - "version": "0.12.98", + "version": "0.12.99", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "3bb7cc246c057405dd5e290c3ecc62ab51d57e00" + "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3bb7cc246c057405dd5e290c3ecc62ab51d57e00", - "reference": "3bb7cc246c057405dd5e290c3ecc62ab51d57e00", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b4d40f1d759942f523be267a1bab6884f46ca3f7", + "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7", "shasum": "" }, "require": { @@ -1996,7 +1999,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.98" + "source": "https://github.com/phpstan/phpstan/tree/0.12.99" }, "funding": [ { @@ -2016,7 +2019,7 @@ "type": "tidelift" } ], - "time": "2021-09-02T12:33:01+00:00" + "time": "2021-09-12T20:09:55+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2445,12 +2448,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "8cebf1673eccd7e6552732142039c147c1023214" + "reference": "94b1ad0f093b41a6cfccbe1272026cbc1ebaad5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/8cebf1673eccd7e6552732142039c147c1023214", - "reference": "8cebf1673eccd7e6552732142039c147c1023214", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/94b1ad0f093b41a6cfccbe1272026cbc1ebaad5c", + "reference": "94b1ad0f093b41a6cfccbe1272026cbc1ebaad5c", "shasum": "" }, "conflict": { @@ -2519,7 +2522,7 @@ "ezsystems/ez-support-tools": ">=2.2,<2.2.3", "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", - "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", + "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-kernel": "<=1.2.5|>=1.3,<=1.3.1", @@ -2557,6 +2560,7 @@ "grumpydictator/firefly-iii": "<5.6", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "helloxz/imgurl": "<=2.31", + "ibexa/post-install": "<=1.0.4", "icecoder/icecoder": "<=8", "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", @@ -2706,6 +2710,7 @@ "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfont/process": ">=0,<4", "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", @@ -2837,7 +2842,7 @@ "type": "tidelift" } ], - "time": "2021-09-09T17:11:22+00:00" + "time": "2021-09-14T21:02:42+00:00" }, { "name": "sabre/event", diff --git a/index.php b/index.php index b90dcaba92e2bd037188b76b6f0c523209c384fc..896e27a479376f65c793b84fc97eeb02481980d3 100644 --- a/index.php +++ b/index.php @@ -10,34 +10,34 @@ use uib\ub\loadspeakr\Utils; require_once __DIR__ . '/vendor/autoload.php'; //Import -if(isset($_GET['q']) && $_GET['q'] == 'import'){ - include_once('classes/Importer.php'); - $imp = new Importer(); - $imp->run(); - exit(0); +if (isset($_GET['q']) && $_GET['q'] == 'import') { + include_once('classes/Importer.php'); + $imp = new Importer(); + $imp->run(); + exit(0); } //Test if LODSPeaKr is configured -if(!file_exists('settings.inc.php')){ - echo 'Need to configure lodspeakr first. Please run "install.sh". Alternatively, you can <a href="import">import an existing application</a>'; - exit(0); +if (!file_exists('settings.inc.php')) { + echo 'Need to configure lodspeakr first. Please run "install.sh". Alternatively, you can <a href="import">import an existing application</a>'; + exit(0); } include_once('common.inc.php'); //Debug output $conf['logfile'] = null; -if($conf['debug']){ - include_once('classes/Logging.php'); - if(isset($_GET['q']) && $_GET['q'] == 'logs'){ - Logging::init(); - exit(0); - }else{ - $conf['logfile'] = Logging::createLogFile($_GET['q']); - //error_reporting(E_ALL); - } -}else{ - error_reporting(E_ERROR); +if ($conf['debug']) { + include_once('classes/Logging.php'); + if (isset($_GET['q']) && $_GET['q'] == 'logs') { + Logging::init(); + exit(0); + } else { + $conf['logfile'] = Logging::createLogFile($_GET['q']); + //error_reporting(E_ALL); + } +} else { + error_reporting(E_ERROR); } include_once('classes/HTTPStatus.php'); @@ -55,54 +55,60 @@ $extension = Utils::getExtension($acceptContentType, $conf['http_accept']); //Check content type is supported by LODSPeaKr -if($acceptContentType == NULL){ - HTTPStatus::send406($uri); +if ($acceptContentType == null) { + HTTPStatus::send406($uri); } //Export -if($conf['export'] && $_GET['q'] == 'export'){ - include_once('settings.inc.php'); - include_once('classes/Exporter.php'); - $exp = new Exporter(); - header('Content-Type: text/plain'); - $exp->run(); - exit(0); +if ($conf['export'] && $_GET['q'] == 'export') { + include_once('settings.inc.php'); + include_once('classes/Exporter.php'); + $exp = new Exporter(); + header('Content-Type: text/plain'); + $exp->run(); + exit(0); } //Redirect to root URL if necessary -$uri = $conf['basedir'].$_GET['q']; +$uri = $conf['basedir'] . $_GET['q']; $localUri = $uri; -if($uri == $conf['basedir']){ - header('Location: '.$conf['root']); - exit(0); +if ($uri == $conf['basedir']) { + header('Location: ' . $conf['root']); + exit(0); } //Configure external URIs if necessary -$localUri = $conf['basedir'].$_GET['q']; +$localUri = $conf['basedir'] . $_GET['q']; $uri = Utils::getMirroredUri($localUri); -//Modules -foreach($conf['modules']['available'] as $i){ - $className = $i.'Module'; - $currentModule = $conf['modules']['directory'].$className.'.php'; - if(!is_file($currentModule)){ - HTTPStatus::send500("<br/>Can't load or error in module <tt>".$currentModule."</tt>" ); - exit(1); - } - require_once($currentModule); - $module = new $className(); - $matching = $module->match($uri); - if($matching != FALSE){ - $module->execute($matching); - if($conf['logfile'] != null){ - fwrite($conf['logfile'], "]}"); - fclose($conf['logfile']); - } - exit(0); - } +//Load Loadspeakr modules. +foreach ($conf['modules']['available'] as $i) { + $className = $i . 'Module'; + $currentModule = $conf['modules']['directory'] . $className . '.php'; + + if (!is_file($currentModule)) { + HTTPStatus::send500('<br/>Can\'t load or error in module <pre>' . $currentModule . '</pre>'); + exit(1); + } + + require_once($currentModule); + $namespacedClassName = 'uib\ub\loadspeakr\modules\\' . ucfirst($className); + $module = new $namespacedClassName(); + $matching = $module->match($uri); + + if ($matching != false) { + $module->execute($matching); + + if ($conf['logfile'] != null) { + fwrite($conf['logfile'], "]}"); + fclose($conf['logfile']); + } + + exit(0); + } } HTTPStatus::send404($uri);