/** * 构造函数 * * @param QReflection_Module $module * @param string $controller_name * @param string $ns */ function __construct(QReflection_Module $module, $controller_name, $ns = null) { $names = explode('::', $controller_name); if (isset($names[1])) { $ns = $names[0]; $controller_name = $names[1]; } $this->_module = $module; $this->_controller_name = $controller_name; $this->_ns = $ns; // 确定控制器对应的文件 $controller_name = strtolower($controller_name); $dir = rtrim($module->moduleDir(), '/\\') . '/controller'; if ($ns) { $this->_controller_file_path = "{$dir}/{$ns}/{$controller_name}_controller.php"; } else { $this->_controller_file_path = "{$dir}/{$controller_name}_controller.php"; } // 确定控制器的类名称 if (!$module->isDefaultModule()) { $class = ucfirst($module->moduleName()) . '_'; } else { $class = ''; } $class .= 'Controller_'; if ($ns) { $class .= ucfirst($ns) . '_'; } $class .= ucfirst($controller_name); $this->_controller_class_name = $class; // 确定控制器的 UDI if ($ns) { $udi = $ns . '::' . $controller_name; } else { $udi = $controller_name; } if (!$module->isDefaultModule()) { $udi .= '@' . $module->moduleName(); } $this->_udi = $udi; }
/** * 返回控制器的 UDI 名称 * * @return string */ function UDI() { if ($this->_namespace) { $name = $this->_namespace . '::' . $this->_controller_name; } else { $name = $this->_controller_name; } if ($this->_reflection_module->moduleName() != QApplication_Module::DEFAULT_MODULE_NAME) { $name .= '@' . $this->_reflection_module->moduleName(); } return $name; }
/** * 返回模型所述模块的名字 * * @return string */ function moduleName() { return $this->_module->moduleName(); }