Example #1
0
 /**
  * @inheritdoc
  */
 public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
 {
     if (parent::canSetProperty($name, $checkVars, $checkBehaviors)) {
         return true;
     }
     try {
         return $this->hasAttribute($name);
     } catch (\Exception $e) {
         // `hasAttribute()` may fail on base/abstract classes in case automatic attribute list fetching used
         return false;
     }
 }
Example #2
0
 protected function mapServiceAttributes(BaseClient &$client, Model &$model)
 {
     $clientUserAttributes = $client->getUserAttributes();
     // go through native client attributes
     foreach ($clientUserAttributes as $attribute => $value) {
         if ($model->canSetProperty($attribute) || in_array($attribute, $model->attributes())) {
             $model->{$attribute} = $value;
         }
     }
     // now find mapping for this service
     $map = SocialMappings::mapForSocialService($this->socialServiceId);
     foreach ($map as $modelAttribute => $socialAttribute) {
         $value = [];
         foreach ($socialAttribute as $attribute) {
             $attribute = trim($attribute);
             if (isset($clientUserAttributes[$attribute])) {
                 $attributeValue = trim($clientUserAttributes[$attribute]);
                 if (!empty($attributeValue)) {
                     $value[] = $clientUserAttributes[$attribute];
                 }
             }
         }
         $value = implode(' ', $value);
         if (!empty($value)) {
             $model->{$modelAttribute} = $value;
         }
     }
 }