<?php
|
/**
|
* PhalApi_Request_Formatter_Array 格式化数组
|
*
|
* @package PhalApi\Request
|
* @license http://www.phalapi.net/license GPL 协议
|
* @link http://www.phalapi.net/
|
* @author dogstar <chanzonghuang@gmail.com> 2015-11-07
|
*/
|
|
|
class PhalApi_Request_Formatter_Array extends PhalApi_Request_Formatter_Base implements PhalApi_Request_Formatter {
|
|
/**
|
* 对数组格式化/数组转换
|
* @param string $value 变量值
|
* @param array $rule array('name' => '', 'type' => 'array', 'default' => '', 'format' => 'json/explode', 'separator' => '', 'min' => '', 'max' => '')
|
* @return array
|
*/
|
public function parse($value, $rule) {
|
$rs = $value;
|
|
if (!is_array($rs)) {
|
$ruleFormat = !empty($rule['format']) ? strtolower($rule['format']) : '';
|
if ($ruleFormat == 'explode') {
|
$rs = explode(isset($rule['separator']) ? $rule['separator'] : ',', $rs);
|
} else if ($ruleFormat == 'json') {
|
$rs = json_decode($rs, TRUE);
|
} else {
|
$rs = array($rs);
|
}
|
}
|
|
$this->filterByRange(count($rs), $rule);
|
|
return $rs;
|
}
|
}
|