Esempio n. 1
0
File: Engine.php Progetto: aazon/sfm
 /**
  * @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'];
 }