src/ApiBundle/Api/Resource/Filter.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace ApiBundle\Api\Resource;
use ApiBundle\Api\Util\AssetHelper;
use AppBundle\Common\ArrayToolkit;
use AppBundle\Util\CdnUrl;
abstract class Filter
{
/**
* 简化模式,只返回少量的非隐私字段
*/
const SIMPLE_MODE = 'simple';
/**
* 公开模式,返回未登录用户可访问的字段
*/
const PUBLIC_MODE = 'public';
/**
* 认证模式,返回用户登录后可访问的字段
*/
const AUTHENTICATED_MODE = 'authenticated';
protected $mode = self::PUBLIC_MODE;
public function setMode($mode)
{
$this->mode = $mode;
}
public function filter(&$data)
{
if (!$data) {
return null;
}
$this->defaultTimeFilter($data);
$filteredData = array();
foreach (array(self::SIMPLE_MODE, self::PUBLIC_MODE, self::AUTHENTICATED_MODE) as $mode) {
$property = $mode.'Fields';
if (property_exists($this, $property) && $this->{$property}) {
$partData = ArrayToolkit::parts($data, $this->$property);
if (method_exists($this, $property)) {
$this->$property($partData);
}
$filteredData += $partData;
if ($this->mode == str_replace('Fields', '', $property)) {
break;
}
}
}
if ($filteredData) {
$data = $filteredData;
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。