Files
InvoiceShelf/app/Platform/Modules/Runtime/ModuleInstaller.php
T
Darko Gjorgjijoski 5ef7804e60 refactor: adopt modular domain architecture (#747)
* refactor: stabilize model identities for domain migration

* refactor: extract module platform context

* refactor: assign models to domain contexts

* refactor: extract ai platform context

* refactor: extract storage platform context

* refactor: extract mail platform context

* refactor: extract pdf platform context

* refactor: extract operations platform context

* refactor: move installation into operations platform

* refactor: extract money domain context

* refactor: extract taxation domain context

* refactor: extract catalog domain context

* refactor: extract metadata domain context

* refactor: extract reporting domain context

* refactor: extract purchases domain context

* refactor: extract receivables domain context

* refactor: extract accounts domain context

* refactor: complete reporting statement boundary

* refactor: extract contacts domain context

* refactor: extract sales domain context

* refactor: remove legacy application layers

* fix: migrate legacy bouncer role identities
2026-08-05 17:40:03 +02:00

31 lines
781 B
PHP

<?php
namespace App\Platform\Modules\Runtime;
use App\Platform\Modules\Events\ModuleEnabledEvent;
use App\Platform\Modules\Events\ModuleInstalledEvent;
use App\Platform\Modules\Models\Module as ModelsModule;
use Artisan;
use Nwidart\Modules\Facades\Module;
class ModuleInstaller
{
public static function complete($module, $version): bool
{
Module::register();
Artisan::call("module:migrate $module --force");
Artisan::call("module:enable $module");
$module = ModelsModule::updateOrCreate(
['name' => $module],
['version' => $version, 'installed' => true, 'enabled' => true]
);
ModuleInstalledEvent::dispatch($module);
ModuleEnabledEvent::dispatch($module);
return true;
}
}