mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-08 13:28: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\PathException;
|
||||||
use phpOMS\System\File\PermissionException;
|
use phpOMS\System\File\PermissionException;
|
||||||
use phpOMS\Utils\Parser\Php\ArrayParser;
|
use phpOMS\Utils\Parser\Php\ArrayParser;
|
||||||
|
use phpOMS\Application\ApplicationManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installer abstract class.
|
* Installer abstract class.
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace phpOMS\Module;
|
||||||
|
|
||||||
use phpOMS\Application\ApplicationAbstract;
|
use phpOMS\Application\ApplicationAbstract;
|
||||||
use phpOMS\Application\ApplicationInfo;
|
use phpOMS\Application\ApplicationInfo;
|
||||||
|
use phpOMS\Application\ApplicationManager;
|
||||||
use phpOMS\Autoloader;
|
use phpOMS\Autoloader;
|
||||||
use phpOMS\DataStorage\Database\Query\Builder;
|
use phpOMS\DataStorage\Database\Query\Builder;
|
||||||
use phpOMS\Message\Http\HttpRequest;
|
use phpOMS\Message\Http\HttpRequest;
|
||||||
|
|
@ -64,6 +65,14 @@ final class ModuleManager
|
||||||
*/
|
*/
|
||||||
private ApplicationAbstract $app;
|
private ApplicationAbstract $app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application manager.
|
||||||
|
*
|
||||||
|
* @var ApplicationManager
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private ApplicationManager $appManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installed modules.
|
* Installed modules.
|
||||||
*
|
*
|
||||||
|
|
@ -494,6 +503,8 @@ final class ModuleManager
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->appManager = new ApplicationManager($this);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$info = $this->loadInfo($module);
|
$info = $this->loadInfo($module);
|
||||||
|
|
||||||
|
|
@ -509,9 +520,10 @@ final class ModuleManager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Install receiving */
|
/* Install receiving and applications */
|
||||||
foreach ($this->installed as $key => $value) {
|
foreach ($this->installed as $key => $value) {
|
||||||
$this->installProviding($key, $module);
|
$this->installProviding($key, $module);
|
||||||
|
$this->installApplications($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
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.
|
* Get module instance.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user