/**
*/
class DisplayService
{
const DISPLAY_NONE = 'none';#隐藏
const DISPLAY_BLOCK = 'block';#显示
public function parseFilterPipe($filter)
{
if(empty($filter) || !($filter_arr = explode(',', $filter)))
{
return false;
}
$filter_arr = array_reverse($filter_arr);
return array_reduce($filter_arr,[self::class,"makeMiddle"],function($data){});
}
public function makeMiddle($next, $filter)
{
return function ($data) use ($next,$filter){
return $this->{$filter}($data,$next);
};
}
public function run($filter,$data)
{
return ($this->parseFilterPipe($filter))($data);
}
public function logging($data,$next)
{
echo 'logging';
$next($data);
}
public function log_out($data,$next)
{
echo 'log-out';
$next($data);
}
public function specific_uids($data,$next)
{
echo 'specific_uids';
$next($data);
}
}
$page_card = new PageCardDisplayService;
$page_card->run('log_out,logging',['liangzhaoxin']);
模型采用类似laravel 中间件模型 完成签到责任链 代替多case 语句,