Skip to content
Snippets Groups Projects

Resolve "Introduce PSR-4 autoloading"

Merged Stein Magne Bjorklund requested to merge 12-introduce-psr-4-autoloading into master
2 files
+ 18
26
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 5
17
@@ -2,18 +2,8 @@
@@ -2,18 +2,8 @@
namespace uib\ub\loadspeakr;
namespace uib\ub\loadspeakr;
use \uib\ub\loadspeakr\modules;
use uib\ub\loadspeakr\modules\AdminModule;
use uib\ub\loadspeakr\modules\ExportModule;
use uib\ub\loadspeakr\modules\ModuleInterface;
use uib\ub\loadspeakr\modules\ModuleInterface;
use uib\ub\loadspeakr\modules\RedirectModule;
use uib\ub\loadspeakr\modules\ServiceModule;
use uib\ub\loadspeakr\modules\SessionModule;
use uib\ub\loadspeakr\modules\SparqlFilterModule;
use uib\ub\loadspeakr\modules\StaticModule;
use uib\ub\loadspeakr\modules\TypeModule;
use uib\ub\loadspeakr\modules\UnknownModule;
use uib\ub\loadspeakr\modules\UnknownModule;
use uib\ub\loadspeakr\modules\UriModule;
final class LoadModules
final class LoadModules
{
{
@@ -26,12 +16,10 @@ final class LoadModules
@@ -26,12 +16,10 @@ final class LoadModules
public function loadModule(string $uri): ModuleInterface
public function loadModule(string $uri): ModuleInterface
{
{
$className = $this->loadClass($uri);
$module = ucfirst($uri) . 'Module';
$className = $this->loadClass($module);
$unknown = new UnknownModule();
$unknown = new UnknownModule();
switch ($className) {
switch ($uri) {
case 'admin':
case 'admin':
return new $className();
return new $className();
case 'redirect':
case 'redirect':
@@ -60,13 +48,13 @@ final class LoadModules
@@ -60,13 +48,13 @@ final class LoadModules
private function loadClass($module): string
private function loadClass($module): string
{
{
if (!$this->moduleAvailable($module)) {
if (!$this->moduleAvailable($module)) {
return '';
HTTPStatus::send500('Module: ' . $module . ' not found.');
}
}
$className = ucfirst($module) . 'Module';
$className = ucfirst($module) . 'Module';
if (class_exists($className)) {
if (file_exists(__DIR__ . '/modules/' . $className . '.php')) {
return $className;
return __NAMESPACE__ . '\\modules\\' . $className;
}
}
return '';
return '';
Loading