改写Validate类和单元测试

This commit is contained in:
thinkphp
2016-03-19 21:59:44 +08:00
parent 386e7ab8d3
commit 9512bfc29a
7 changed files with 746 additions and 294 deletions

View File

@@ -348,6 +348,37 @@ class Loader
}
}
/**
* 实例化验证类 格式:[模块名/]验证器名
* @param string $name 资源地址
* @param string $layer 验证层名称
* @return Object|false
*/
public static function validate($name = '', $layer = '')
{
if (empty($name)) {
return new Validate;
}
static $_instance = [];
$layer = $layer ?: VALIDATE_LAYER;
if (isset($_instance[$name . $layer])) {
return $_instance[$name . $layer];
}
if (strpos($name, '/')) {
list($module, $name) = explode('/', $name);
} else {
$module = APP_MULTI_MODULE ? MODULE_NAME : '';
}
$class = self::parseClass($module, $layer, $name);
if (class_exists($class)) {
$validate = new $class;
$_instance[$name . $layer] = $validate;
return $validate;
} else {
throw new Exception('class [ ' . $class . ' ] not exists', 10001);
}
}
/**
* 实例化数据库
* @param mixed $config 数据库配置