has_submodules = true; $parentModule->save(); } // insert module into database $module = Module::create([ 'name' => $name, 'description' => $description, 'handler' => $handler, 'static_name' => $staticName, 'manages_content' => $managesContent, 'support_categories' => $supportCategories, 'alias' => $alias, 'module_settings' => $settings, 'parent_id' => $parentModuleId ? $parentModuleId : null, 'enabled' => 1, 'is_template' => $isTemplate ]); // install something module-specific if ($handler && is_callable([$handler, 'install'])) { call_user_func([$handler, 'install']); } return $module; } }