/** * @param $member * @return array */ protected function entityMethods($member) { $arrMeta =& $this->assertMember($member); if (!isset($arrMeta['methods']['entity'])) { $arrMethods = array(); $arrSimplesInRelations = array(); /**@var SFM_RelationSide $relation */ foreach ($arrMeta['relations'] as $key => $relation) { $arrMethods[$this->naming->key2get($key)] = array('get', $key); if ($relation->isOwner) { $arrMethods[$this->naming->key2set($key)] = array('set', $key); } $arrMethods[$this->naming->key2has($key)] = array('has', $key); if ($relation->isOwner) { $arrSimplesInRelations[] = $relation->simple; } } $arrSimple = $this->getSimpleFields($member); foreach ($arrSimple as $key) { $arrMethods[$this->naming->key2get($key)] = array('get', $key); //Deprecating simple fields which are responsible for relations to be changed without relation if ($key != $arrMeta['primary_key'] && !in_array($key, $arrSimplesInRelations)) { $arrMethods[$this->naming->key2set($key)] = array('set', $key); } $arrMethods[$this->naming->key2has($key)] = array('has', $key); if ($this->naming->isFlag($key)) { $arrMethods[$this->naming->key2flagGet($key)] = array('is_get', $key); $arrMethods[$this->naming->key2flagSet($key)] = array('is_set', $key); } } $this->meta[$member]['methods']['entity'] = $arrMeta['methods']['entity'] = $arrMethods; } return $arrMeta['methods']['entity']; }