code: public function get($parameter)
      {
          switch ($parameter)
          {
              // Essential components are instantiated during application set up
              case "dev":
                  return $this->dev ?? true;
              case "config":
                  return $this->config;
              case "injector":
                  return $this->injector;
              case "pathConfig":
                  return $this->path_config;
              case "request":
                  return $this->request;
              case "resolver":
                  return $this->resolver;
              case "moduleManager":
                  return $this->module_manager;
  
              // Non-essential components are created on-the-fly
              case "auth":
                  return $this->injector->getInstance(Authentication::class);
              case "db":
                  return $this->injector->getInstance(DB::class);
              case "dispatcher":
                  return $this->injector->getInstance(Dispatcher::class);
              case "template":
                  return $this->injector->getInstance(Template::class);
              case "mailer":
                  return $this->injector->getInstance(SMTPSender::class);
              case "i18n":
                  return $this->injector->getInstance(I18n::class);
              case "processChain":
                  return $this->injector->getInstance(ProcessChain::class);
          }
          throw new InvalidArgumentException("No such object: $parameter");
      }
docs: Allow access to one or more of the core Wedeto components.
  
  Objects non-essential for the core are instantiated upon first request.