/**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 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;
 }