/** * @param $member * @return array */ protected function listMethods($member) { $arrMeta = $this->assertMember($member); if (!isset($arrMeta['methods']['list'])) { $arrMethods = array(); $arrSimple = $this->getSimpleFields($member); $arrRelation = array_keys($arrMeta['relations']); $arrFields = array_merge($arrSimple, $arrRelation); foreach ($arrFields as $key) { $arrMethods[$this->naming->key2get($key)] = array('get', $key); $arrMethods[$this->naming->key2set($key)] = array('set', $key); $arrMethods[$this->naming->key2sort($key)] = array('sort', $key); $arrMethods[$this->naming->key2unique($key)] = array('unique', $key); if ($this->naming->isFlag($key)) { $arrMethods[$this->naming->key2flagFilter($key)] = array('flag_filter', $key); $arrMethods[$this->naming->key2flagSet($key)] = array('flag_set', $key); } else { $arrMethods[$this->naming->key2filter($key)] = array('filter', $key); } } $this->meta[$member]['methods']['list'] = $arrMeta['methods']['list'] = $arrMethods; } return $arrMeta['methods']['list']; }