modular composer requirements aborts if missing

This commit is contained in:
2025-10-28 23:03:41 +05:00
parent 6bdc820589
commit 1e9bad12c5
7 changed files with 157 additions and 8 deletions

View File

@@ -2,6 +2,10 @@
namespace App\Modules;
use App\Modules\Core\ModulePackage;
use App\Modules\Core\ModulePackageType;
use Composer\Composer;
use Composer\InstalledVersions;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
@@ -57,9 +61,25 @@ class ModuleServiceProvider extends ServiceProvider
*/
public function verifyModuleComposerRequirements(BaseModule $module): void
{
// foreach ($module->app->getComposerRequirements() as $requirement) {
foreach ($module->app->getComposerRequirements() as $package) {
if ($package->type === ModulePackageType::PACKAGE) {
if (! InstalledVersions::isInstalled($package->name)) {
abort(
code: 500,
message: "{$package->name} must be installed (module: {$module->name})"
);
}
}
// }
if ($package->type === ModulePackageType::MODULE) {
if (! module_exists($package->name)) {
abort(
code: 500,
message: "{$package->name} module must be installed (module: {$module->name})"
);
}
}
}
}
/**