code: protected function registerClassInstanceSingleton($singletonName, $classNameOrInstance = null) {
          if (empty($classNameOrInstance)) {
              $classNameOrInstance = $singletonName;
          }
          $this->app->singleton($singletonName, function () use ($classNameOrInstance) {
              /** @var TableInterface|TableStructureInterface $classNameOrInstance */
              return is_string($classNameOrInstance)
                  ? $classNameOrInstance::getInstance()
                  : $classNameOrInstance;
          });
      }
docs: Used to register DB Table or DB TableStructure singleton instances
  @param string $singletonName - singleton name in app's service container (should be a class name)
  @param null|string|TableInterface|TableStructureInterface $classNameOrInstance - map this class/TableInterface
  to a singleton. When null - $singletonName is used as $className. Singleton will return an instance of class