mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-11 09:48:40 +00:00
Split controllers per application
This commit is contained in:
parent
430be41982
commit
bfc457115c
|
|
@ -182,13 +182,7 @@ final class Dispatcher
|
|||
private function getController(string $controller) : object
|
||||
{
|
||||
if (!isset($this->controllers[$controller])) {
|
||||
// If module controller use module manager for initialization
|
||||
if (\strpos('\Modules\Controller', $controller) === 0) {
|
||||
$split = \explode('\\', $controller);
|
||||
$this->controllers[$controller] = $this->app->moduleManager->get($split[2]);
|
||||
} else {
|
||||
$this->controllers[$controller] = new $controller($this->app);
|
||||
}
|
||||
$this->controllers[$controller] = new $controller($this->app);
|
||||
}
|
||||
|
||||
return $this->controllers[$controller];
|
||||
|
|
|
|||
|
|
@ -36,13 +36,22 @@ final class L11nManager
|
|||
*/
|
||||
private $language = [];
|
||||
|
||||
/**
|
||||
* App Name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $appName = '';
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function __construct()
|
||||
public function __construct(string $appName)
|
||||
{
|
||||
$this->appName = $appName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -152,7 +161,7 @@ final class L11nManager
|
|||
if (!isset($this->language[$code][$module][$translation])) {
|
||||
try {
|
||||
/** @var ModuleAbstract $class */
|
||||
$class = '\Modules\\' . $module . '\\Controller';
|
||||
$class = '\Modules\\' . $module . '\\Controller\\' . $this->appName . 'Controller';
|
||||
$this->loadLanguage($code, $module, $class::getLocalization($code, $theme));
|
||||
|
||||
if (!isset($this->language[$code][$module][$translation])) {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ final class ModuleFactory
|
|||
*/
|
||||
public static function getInstance(string $module, ApplicationAbstract $app) : ModuleAbstract
|
||||
{
|
||||
$class = '\\Modules\\' . $module . '\\Controller';
|
||||
$class = '\\Modules\\' . $module . '\\Controller\\' . $app->appName . 'Controller';
|
||||
|
||||
if (!isset(self::$loaded[$module])) {
|
||||
if (Autoloader::exists($class) !== false) {
|
||||
|
|
|
|||
|
|
@ -651,7 +651,7 @@ final class ModuleManager
|
|||
{
|
||||
try {
|
||||
$this->running[$module] = ModuleFactory::getInstance($module, $this->app);
|
||||
$this->app->dispatcher->set($this->running[$module], '\Modules\\' . $module . '\\Controller');
|
||||
$this->app->dispatcher->set($this->running[$module], '\Modules\\Controller\\' . $module . '\\' . $this->app->appName . 'Controller');
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class AccountTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->l11nManager = new L11nManager();
|
||||
$this->l11nManager = new L11nManager('Api');
|
||||
}
|
||||
|
||||
public function testAttributes()
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class DispatcherTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->app = new class extends ApplicationAbstract {};
|
||||
$this->app = new class extends ApplicationAbstract { protected $appName = 'Api'; };
|
||||
$this->app->router = new Router();
|
||||
$this->app->dispatcher = new Dispatcher($this->app);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,13 +22,13 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
|||
{
|
||||
public function testAttributes()
|
||||
{
|
||||
$l11nManager = new L11nManager();
|
||||
$l11nManager = new L11nManager('Api');
|
||||
self::assertObjectHasAttribute('language', $l11nManager);
|
||||
}
|
||||
|
||||
public function testDefault()
|
||||
{
|
||||
$l11nManager = new L11nManager();
|
||||
$l11nManager = new L11nManager('Api');
|
||||
self::assertFalse($l11nManager->isLanguageLoaded('en'));
|
||||
self::assertEquals([], $l11nManager->getModuleLanguage('en'));
|
||||
self::assertEquals([], $l11nManager->getModuleLanguage('en', 'Admin'));
|
||||
|
|
@ -49,7 +49,7 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
|||
]
|
||||
];
|
||||
|
||||
$localization = new L11nManager();
|
||||
$localization = new L11nManager('Api');
|
||||
$localization->loadLanguage('en', 'doesNotExist', $expected);
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
|||
]
|
||||
];
|
||||
|
||||
$l11nManager = new L11nManager();
|
||||
$l11nManager = new L11nManager('Api');
|
||||
$l11nManager->loadLanguage('en', 'Admin', $expected['en']);
|
||||
$l11nManager->loadLanguage('en', 'Admin', $expected2['en']);
|
||||
self::assertTrue($l11nManager->isLanguageLoaded('en'));
|
||||
|
|
@ -82,7 +82,7 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
public function testGetSetFromFile()
|
||||
{
|
||||
$l11nManager2 = new L11nManager();
|
||||
$l11nManager2 = new L11nManager('Api');
|
||||
$l11nManager2->loadLanguageFromFile('en', 'Test', __DIR__ . '/langTestFile.php');
|
||||
self::assertEquals('value', $l11nManager2->getHtml('en', 'Test', 'RandomThemeDoesNotMatterAlreadyLoaded', 'key'));
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class LocalizationTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->l11nManager = new L11nManager();
|
||||
$this->l11nManager = new L11nManager('Api');
|
||||
}
|
||||
|
||||
public function testAttributes()
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ class ModuleFactoryTest extends \PHPUnit\Framework\TestCase
|
|||
{
|
||||
$instance = NullModule::class;
|
||||
if (\file_exists(__DIR__ . '/../../../Modules')) {
|
||||
$instance = \Modules\Admin\Controller::class;
|
||||
$instance = \Modules\Admin\Controller\ApiController::class;
|
||||
}
|
||||
|
||||
self::assertInstanceOf($instance, ModuleFactory::getInstance('Admin', new class extends ApplicationAbstract {}));
|
||||
self::assertInstanceOf($instance, ModuleFactory::getInstance('Admin', new class extends ApplicationAbstract { protected $appName = 'Api'; }));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ class ModuleManagerTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->app = new class extends ApplicationAbstract {};
|
||||
$this->app = new class extends ApplicationAbstract { protected $appName = 'Api'; };
|
||||
$this->app->appName = 'Api';
|
||||
$this->app->dbPool = $GLOBALS['dbpool'];
|
||||
$this->app->dispatcher = new Dispatcher($this->app);
|
||||
}
|
||||
|
|
@ -82,6 +83,6 @@ class ModuleManagerTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertNotEmpty($installed);
|
||||
|
||||
self::assertInstanceOf('\phpOMS\Module\ModuleAbstract', $moduleManager->get('Admin'));
|
||||
self::assertInstanceOf('\Modules\Admin\Controller', $moduleManager->get('Admin'));
|
||||
self::assertInstanceOf('\Modules\Admin\Controller\ApiController', $moduleManager->get('Admin'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,10 @@ class ViewTest extends \PHPUnit\Framework\TestCase
|
|||
|
||||
$this->app = new class extends ApplicationAbstract
|
||||
{
|
||||
protected $appName = 'Api';
|
||||
};
|
||||
|
||||
$this->app->l11nManager = new L11nManager();
|
||||
$this->app->l11nManager = new L11nManager($this->app->appName);
|
||||
$this->app->dbPool = $this->dbPool;
|
||||
}
|
||||
|
||||
|
|
@ -72,7 +73,7 @@ class ViewTest extends \PHPUnit\Framework\TestCase
|
|||
]
|
||||
];
|
||||
|
||||
$this->app->l11nManager = new L11nManager();
|
||||
$this->app->l11nManager = new L11nManager('Api');
|
||||
$this->app->l11nManager->loadLanguage('en', 'Admin', $expected['en']);
|
||||
|
||||
self::assertEquals('<a href="test">Test</a>', $view->getText('Test'));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user