/** * Tests WindFrontController->registeComponent() * */ public function testRegisteComponent() { $httprequest = new WindHttpRequest(); $httprequest->setAttribute(123, 'long'); $httpresponse = new WindHttpResponse(); $httpresponse->setData(123, 'long'); $aaa = new stdClass(); $aaa->long = 123; $this->WindFrontController->registeComponent($aaa, 'aaa'); $this->WindFrontController->registeComponent($httpresponse, 'response'); $this->WindFrontController->registeComponent($httprequest, 'request'); $this->WindFrontController->createApplication(); $this->assertEquals(123, Wind::getApp()->getRequest()->getAttribute('long')); $this->assertEquals(123, Wind::getApp()->getResponse()->getData('long')); $this->assertEquals(123, Wind::getApp()->getComponent('aaa')->long); }
/** * Enter description here . * .. * * @param WindHttpRequest $request * @param int $offset * @return array(countLoginFailed, lastLoginTime) */ public function checkLoginFailed($request, $offset = 2048) { $logs = $this->readLog($offset); if ($logs[0] <= 0) { return 0; } $online_ip = $request->getClientIp(); $countLoginFailed = $lastLoginTime = 0; for ($i = $logs[0]; $i > 0; $i--) { if (false !== strpos($logs[$i], "|Login Failed|{$online_ip}|")) { $countLoginFailed++; if (empty($lastLoginTime)) { $record = explode('|', $logs[$i]); $lastLoginTime = (int) $record[4]; } } } return array($countLoginFailed, $lastLoginTime); }
public function assemble($action, $args = array(), $route = null) { $route || ($route = $this->defaultRoute); if ($route && null !== ($route = $this->getRoute($route))) { $_url = $route->build($this, $action, $args); } else { list($_a, $_c, $_m, $args) = WindUrlHelper::resolveAction($action, $args); if ($_m && $_m !== $this->_module) { $args[$this->moduleKey] = $_m; } if ($_c && $_c !== $this->_controller) { $args[$this->controllerKey] = $_c; } if ($_a && $_a !== $this->_action) { $args[$this->actionKey] = $_a; } $_url = $this->request->getScript() . '?' . WindUrlHelper::argsToUrl($args); } return $_url; }
/** * 获得module配置,$name为空时返回当前module配置 * * @param string $name * module名称 默认为空 * @param boolean $merge * 合并默认值 * @return array * @throws WindActionException * @throws WindException */ public function getModules($name = '') { if ($name === '') { $name = $this->handlerAdapter->getModule(); } if ($name === 'pattern') { $name = $this->handlerAdapter->getDefaultModule(); } if ($name === 'default') { return $this->_config['modules']['default']; } $_module = $this->getConfig('modules', $name, array()); if (!isset($_module['_verified']) || $_module['_verified'] !== true) { if (empty($_module) && !empty($this->_config['modules']['pattern'])) { $_module = $this->_config['modules']['pattern']; } if ($_module) { $_module = WindUtility::mergeArray($this->_config['modules']['default'], $_module); } else { throw new WindException('Your request was not found on this server.', 404); } $_module_str = implode('#', $_module); if (strpos($_module_str, '{') !== false) { preg_match_all('/{(\\w+)}/i', $_module_str, $matches); if (!empty($matches[1])) { $_replace = array(); foreach ($matches[1] as $key => $value) { if ($value === $this->handlerAdapter->getModuleKey()) { $_replace['{' . $value . '}'] = $this->handlerAdapter->getModule(); } elseif ($value === $this->handlerAdapter->getControllerKey()) { $_replace['{' . $value . '}'] = $this->handlerAdapter->getController(); } elseif ($value === $this->handlerAdapter->getActionKey()) { $_replace['{' . $value . '}'] = $this->handlerAdapter->getAction(); } else { $_replace['{' . $value . '}'] = $this->request->getGet($value); } } $_module_str = strtr($_module_str, $_replace); $_module = array_combine(array_keys($_module), explode('#', $_module_str)); } } $_module['_verified'] = true; $this->_config['modules'][$name] = $_module; } return $_module; }
/** * 应用初始化操作 * * @param WindHttpRequest $request * @param WindHttpResponse $response * @param WindFactory $factory */ public function __construct($request, $factory) { $this->response = $request->getResponse(); $this->request = $request; $this->windFactory = $factory; }