code: public function getModule($id, $load = true)
      {
          if (($pos = strpos($id, '/')) !== false) {
              // sub-module
              $module = $this->getModule(substr($id, 0, $pos));
  
              return $module === null ? null : $module->getModule(substr($id, $pos + 1), $load);
          }
  
          if (isset($this->_modules[$id])) {
              if ($this->_modules[$id] instanceof self) {
                  return $this->_modules[$id];
              } elseif ($load) {
                  Yii::debug("Loading module: $id", __METHOD__);
                  /* @var $module Module */
                  $module = Yii::createObject($this->_modules[$id], [$id, $this]);
                  $module->setInstance($module);
                  return $this->_modules[$id] = $module;
              }
          }
  
          return null;
      }
docs: Retrieves the child module of the specified ID.
  This method supports retrieving both child modules and grand child modules.
  @param string $id module ID (case-sensitive). To retrieve grand child modules,
  use ID path relative to this module (e.g. `admin/content`).
  @param bool $load whether to load the module if it is not yet loaded.
  @return Module|null the module instance, `null` if the module does not exist.
  @see hasModule()