Example #1
0
 /**
  * 禁止单例对象
  */
 protected final function __construct()
 {
     // PUT和DETELE方法支持
     if (($putOrDelete = array()) || IS_PUT || IS_DELETE) {
         parse_str(file_get_contents('php://input'), $putOrDelete);
     }
     // 输入数据源
     $this->setYafRequest();
     $params = array_merge($this->getYafRequest()->getParams(), $putOrDelete, $_REQUEST);
     // 获取检查规则
     $xml = sprintf('%sforms%s%s%s%s.xml', MODULE_PATH, DS, strtolower(CONTROLLER_NAME), DS, strtolower(ACTION_NAME));
     if (is_file($xml)) {
         // 读取xml文件
         $simpleXMLElements = @simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
         if (!$simpleXMLElements) {
             throw new \Exception("{$xml}语法有误");
         }
         // 进行表单检查
         $fromTrait = new Form($params, $this->getYafRequest()->getMethod());
         $fromTrait->useXmlRule($simpleXMLElements)->filter();
         $params = $fromTrait->getSuccess();
     }
     $this->setParams($params);
 }