seeder-migration-issues
This commit is contained in:
		
							
								
								
									
										81
									
								
								vendor/zendframework/zend-hydrator/src/ArraySerializable.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								vendor/zendframework/zend-hydrator/src/ArraySerializable.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Zend Framework (http://framework.zend.com/) | ||||
|  * | ||||
|  * @link      http://github.com/zendframework/zf2 for the canonical source repository | ||||
|  * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | ||||
|  * @license   http://framework.zend.com/license/new-bsd New BSD License | ||||
|  */ | ||||
|  | ||||
| namespace Zend\Hydrator; | ||||
|  | ||||
| class ArraySerializable extends AbstractHydrator | ||||
| { | ||||
|     /** | ||||
|      * Extract values from the provided object | ||||
|      * | ||||
|      * Extracts values via the object's getArrayCopy() method. | ||||
|      * | ||||
|      * @param  object $object | ||||
|      * @return array | ||||
|      * @throws Exception\BadMethodCallException for an $object not implementing getArrayCopy() | ||||
|      */ | ||||
|     public function extract($object) | ||||
|     { | ||||
|         if (! is_callable([$object, 'getArrayCopy'])) { | ||||
|             throw new Exception\BadMethodCallException( | ||||
|                 sprintf('%s expects the provided object to implement getArrayCopy()', __METHOD__) | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         $data   = $object->getArrayCopy(); | ||||
|         $filter = $this->getFilter(); | ||||
|  | ||||
|         foreach ($data as $name => $value) { | ||||
|             if (!$filter->filter($name)) { | ||||
|                 unset($data[$name]); | ||||
|                 continue; | ||||
|             } | ||||
|             $extractedName = $this->extractName($name, $object); | ||||
|             // replace the original key with extracted, if differ | ||||
|             if ($extractedName !== $name) { | ||||
|                 unset($data[$name]); | ||||
|                 $name = $extractedName; | ||||
|             } | ||||
|             $data[$name] = $this->extractValue($name, $value, $object); | ||||
|         } | ||||
|  | ||||
|         return $data; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Hydrate an object | ||||
|      * | ||||
|      * Hydrates an object by passing $data to either its exchangeArray() or | ||||
|      * populate() method. | ||||
|      * | ||||
|      * @param  array $data | ||||
|      * @param  object $object | ||||
|      * @return object | ||||
|      * @throws Exception\BadMethodCallException for an $object not implementing exchangeArray() or populate() | ||||
|      */ | ||||
|     public function hydrate(array $data, $object) | ||||
|     { | ||||
|         $replacement = []; | ||||
|         foreach ($data as $key => $value) { | ||||
|             $name = $this->hydrateName($key, $data); | ||||
|             $replacement[$name] = $this->hydrateValue($name, $value, $data); | ||||
|         } | ||||
|  | ||||
|         if (is_callable([$object, 'exchangeArray'])) { | ||||
|             $object->exchangeArray($replacement); | ||||
|         } elseif (is_callable([$object, 'populate'])) { | ||||
|             $object->populate($replacement); | ||||
|         } else { | ||||
|             throw new Exception\BadMethodCallException( | ||||
|                 sprintf('%s expects the provided object to implement exchangeArray() or populate()', __METHOD__) | ||||
|             ); | ||||
|         } | ||||
|         return $object; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 RafficMohammed
					RafficMohammed