DOCUMENTATION: add documentantion for installation commands
This commit is contained in:
@@ -42,23 +42,32 @@ class InstallModule extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$name = $this->argument('name');
|
||||
$this->moduleName = $name;
|
||||
$this->moduleName = $name = $this->argument('name');
|
||||
|
||||
// invalid module name provided
|
||||
if (!is_dir($this->modulesPath . DIRECTORY_SEPARATOR . $name)) {
|
||||
throw new InvalidArgumentException('Invalid module ' . $name . '. No directory under ' . $this->modulesPath . DIRECTORY_SEPARATOR . $name . ' found!');
|
||||
}
|
||||
|
||||
// get config
|
||||
$config = $this->loadConfig();
|
||||
|
||||
// check if it is valid
|
||||
$this->checkMandatoryFields($config);
|
||||
|
||||
// all mandatory fields are present, we can write it into database and create modules.json
|
||||
$this->installModule($config);
|
||||
|
||||
// inform user
|
||||
$this->line('Module ' . $name . ' successfuly installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Load config from Config/config.php in module files. We cannot use config() because the file have not published
|
||||
* yet.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function loadConfig()
|
||||
{
|
||||
// we cannot rely on config() helper, because this module does not have to be published
|
||||
@@ -67,6 +76,11 @@ class InstallModule extends Command
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if config contains all mandatory entries.
|
||||
*
|
||||
* @param $config
|
||||
*/
|
||||
private function checkMandatoryFields($config)
|
||||
{
|
||||
$fields = ['providers', 'handler', 'name', 'files', 'alias'];
|
||||
@@ -77,6 +91,18 @@ class InstallModule extends Command
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs module into database.
|
||||
*
|
||||
* This method calls Module::install, which handles specific installation of module. In this way we should be able
|
||||
* to install any module even with some other database structures.
|
||||
*
|
||||
* @param $config
|
||||
*
|
||||
* @return Module
|
||||
* @throws \ErrorException
|
||||
* @throws \Exception
|
||||
*/
|
||||
private function installModule($config)
|
||||
{
|
||||
$name = isset($config['translatedName']) ? $config['translatedName'] : $config['name'];
|
||||
|
||||
Reference in New Issue
Block a user