<?php namespace Action; use Configs\StaticJS; use Configs\StaticCss; use Hood\Action as HoodAction; use Yaf\Registry; use Yaf\Dispatcher; use Hood\Session; use Hood\Cache; class RootAction extends HoodAction { protected $_appConfig = array(); public function init() { $this->_appConfig = Registry::get('appConfig'); } public function _assign($name, $value) { return $this->getView()->assign($name, $value); } /** * 获取JS URL * * @param String $jsName * @return String */ public function _js($jsName, $local = false) { if (isset(StaticJS::$res[$jsName])) { $js = $this->_appConfig['website']['static']['url']; if ($local == false) { $js .= StaticJS::$res[$jsName]; } else { $js = StaticJS::$res[$jsName]; } return $js; } return ''; } /** * 获取Css URL * * @param String $cssName * @return String */ public function _css($cssName, $local = false) { if (isset(StaticCss::$res[$cssName])) { $css = $this->_appConfig['website']['static']['url']; if ($local == false) { $css .= StaticCss::$res[$cssName]; } else { $css = StaticCss::$res[$cssName]; } return $css; } return ''; } /** * 获取JS URL * * @param String $jsName * @return String */ public function _viewScriptPush(array $jsList, $scriptName = '_footerScript') { $script = $this->_viewScript($scriptName); foreach ($jsList as $js) { $script->appendFile($this->_js($js, true)); } } /** * 获取JS URL * * @param String $jsName * @return String */ public function _viewCssPush(array $cssList, $linkName = '_headLink') { $link = $this->_viewLink($linkName); foreach ($cssList as $css) { $link->appendFile($this->_css($css, true)); } } /** * 获取参数 * @param null $name * @param null $default * @return mixed */ protected function _getEnv($name = null, $default = null) { return $this->getRequest()->getEnv($name, $default); } /** * 封装一下获取param参数 * @param String $key * @param mixed $default * @return mixed */ protected function _getParam($key, $default = null) { $request = $this->_request->getRequest(); $route = $this->getRequest()->getParams(); $allParams = array_merge($request, $route); return isset($allParams[$key]) ? $allParams[$key] : $default; } /** * 获取所有参数 * @return array */ protected function _getParams() { return $this->_request->getParams(); } /** * 获取所有参数 * @return mixed */ protected function _getRequests() { return $this->_request->getRequest(); } /** * 封装一下获取get参数 * @param String $key * @param mixed $default * @return mixed */ protected function _get($key, $default = null) { return $this->getRequest()->getQuery($key, $default); } /** * 封装一下获取post参数 * @param String $key * @param mixed $default * @return mixed */ protected function _post($key, $default = null) { return $this->getRequest()->getPost($key, $default); } /** * 封装一下获取post参数 * @param String $key * @param mixed $default * @return mixed */ protected function _typePost($key, $settype = null, $default = null) { $result = $this->getRequest()->getPost($key, $default); switch ($settype) { case 'bool': $result = (bool)$result; break; case 'int': $result = (int)$result; break; case 'string': $result = (string)$result; break; case 'float': $result = (float)$result; break; case 'binary': $result = (binary)$result; break; default: $result = $result; break; } return $result; } /** * 关闭模板 & Layout */ public function _disable() { $this->disableLayout(); $this->disableView(); } /** * 关闭模板 */ public function disableView() { Dispatcher::getInstance()->autoRender(FALSE); } /** * 关闭Layout */ public function disableLayout() { $this->getView()->setLayout(''); } /** * @param string $namespace * @return \Hood\Core\Session\SessionNamespace */ public function _session($namespace = 'session_default') { if (isset($this->_appConfig['website']['session']) && $this->_appConfig['website']['session'] == 'file') { return Session::fileStart($namespace); } else { return Session::start($namespace); } } public function _mc($node = null, $childNode = 'hosts'){ return Cache::memcached($node, $childNode); } }