getProperties(); foreach ($properties as $property) { $property->setValue($this, $this->getSerializedPropertyValue( $this->getPropertyValue($property) )); } return array_values(array_filter(array_map(function ($p) { return $p->isStatic() ? null : $p->getName(); }, $properties))); } /** * Restore the model after serialization. * * @return void */ public function __wakeup() { foreach ((new ReflectionClass($this))->getProperties() as $property) { if ($property->isStatic()) { continue; } $property->setValue($this, $this->getRestoredPropertyValue( $this->getPropertyValue($property) )); } } /** * Get the property value for the given property. * * @param \ReflectionProperty $property * @return mixed */ protected function getPropertyValue(ReflectionProperty $property) { $property->setAccessible(true); return $property->getValue($this); } }