original_string: private function mergeObject($destinationObject, $sourceObject)
      {
          $reflectedDestination  = new \ReflectionObject($destinationObject);
          $reflectedSource       = new \ReflectionObject($sourceObject);
          $defaultPropertyValues = $reflectedDestination->getDefaultProperties();
  
          foreach ($reflectedSource->getProperties() as $sourceProperty) {
              $destinationObject = $this->mergeProperty(
                  $destinationObject,
                  $reflectedDestination->getProperty($sourceProperty->getName()),
                  $sourceObject,
                  $sourceProperty,
                  $defaultPropertyValues
              );
          }
  
          return $destinationObject;
      }
code: private function mergeObject($destinationObject, $sourceObject)
      {
          $reflectedDestination  = new \ReflectionObject($destinationObject);
          $reflectedSource       = new \ReflectionObject($sourceObject);
          $defaultPropertyValues = $reflectedDestination->getDefaultProperties();
  
          foreach ($reflectedSource->getProperties() as $sourceProperty) {
              $destinationObject = $this->mergeProperty(
                  $destinationObject,
                  $reflectedDestination->getProperty($sourceProperty->getName()),
                  $sourceObject,
                  $sourceProperty,
                  $defaultPropertyValues
              );
          }
  
          return $destinationObject;
      }
code_tokens: private function mergeObject ( $ destinationObject , $ sourceObject ) { $ reflectedDestination = new \ ReflectionObject ( $ destinationObject ) ; $ reflectedSource = new \ ReflectionObject ( $ sourceObject ) ; $ defaultPropertyValues = $ reflectedDestination -> getDefaultProperties ( ) ; foreach ( $ reflectedSource -> getProperties ( ) as $ sourceProperty ) { $ destinationObject = $ this -> mergeProperty ( $ destinationObject , $ reflectedDestination -> getProperty ( $ sourceProperty -> getName ( ) ) , $ sourceObject , $ sourceProperty , $ defaultPropertyValues ) ; } return $ destinationObject ; }
docstring: Deep-merge the source object over the destination object and return the results.
  
  @param object $destinationObject
  @param object $sourceObject
  
  @return object
docstring_tokens: Deep - merge the source object over the destination object and return the results .