mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-18 04:48:39 +00:00
allow module app install
This commit is contained in:
parent
62cd92710b
commit
d1d300eedd
|
|
@ -24,6 +24,7 @@ use phpOMS\System\File\Local\File;
|
|||
use phpOMS\System\File\PathException;
|
||||
use phpOMS\System\File\PermissionException;
|
||||
use phpOMS\Utils\Parser\Php\ArrayParser;
|
||||
use phpOMS\Application\ApplicationManager;
|
||||
|
||||
/**
|
||||
* Installer abstract class.
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ namespace phpOMS\Module;
|
|||
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
use phpOMS\Application\ApplicationInfo;
|
||||
use phpOMS\Application\ApplicationManager;
|
||||
use phpOMS\Autoloader;
|
||||
use phpOMS\DataStorage\Database\Query\Builder;
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
|
|
@ -64,6 +65,14 @@ final class ModuleManager
|
|||
*/
|
||||
private ApplicationAbstract $app;
|
||||
|
||||
/**
|
||||
* Application manager.
|
||||
*
|
||||
* @var ApplicationManager
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private ApplicationManager $appManager;
|
||||
|
||||
/**
|
||||
* Installed modules.
|
||||
*
|
||||
|
|
@ -494,6 +503,8 @@ final class ModuleManager
|
|||
return false;
|
||||
}
|
||||
|
||||
$this->appManager = new ApplicationManager($this);
|
||||
|
||||
try {
|
||||
$info = $this->loadInfo($module);
|
||||
|
||||
|
|
@ -509,9 +520,10 @@ final class ModuleManager
|
|||
}
|
||||
}
|
||||
|
||||
/* Install receiving */
|
||||
/* Install receiving and applications */
|
||||
foreach ($this->installed as $key => $value) {
|
||||
$this->installProviding($key, $module);
|
||||
$this->installApplications($key);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -640,6 +652,29 @@ final class ModuleManager
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Install applications.
|
||||
*
|
||||
* Installing additional functionality for another module
|
||||
*
|
||||
* @param string $from From module
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function installApplications(string $from) : void
|
||||
{
|
||||
$dirs = \scandir($this->modulePath . '/' . $from . '/Application');
|
||||
foreach ($dirs as $dir) {
|
||||
if ($dir === '.' || $dir === '..') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->appManager->install($dir, __DIR__ . '/../../Web/' . \basename($dir));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module instance.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user