Addon.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\AppControllers;
  3. use ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\Instances\AddonController;
  4. use ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\Interfaces\AppController;
  5. use ModulesGarden\Servers\ProxmoxVps\Core\Traits\AppParams;
  6. class Addon extends \ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\AppController implements AppController
  7. {
  8. use AppParams;
  9. public function getControllerInstanceClass ($callerName, $params)
  10. {
  11. $functionName = str_replace($this->getModuleName() . '_', '', $callerName);
  12. $coreAddon = '\ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\Instances\Addon\\' . ucfirst($functionName);
  13. if (class_exists($coreAddon) && is_subclass_of($coreAddon, AddonController::class))
  14. {
  15. return $coreAddon;
  16. }
  17. $appAddon = '\ModulesGarden\Servers\ProxmoxVps\App\Http\Actions\\' . ucfirst($functionName);
  18. if (class_exists($appAddon) && is_subclass_of($appAddon, AddonController::class))
  19. {
  20. return $appAddon;
  21. }
  22. return null;
  23. }
  24. public function getModuleName ()
  25. {
  26. return $this->getAppParam('systemName');
  27. }
  28. }