%PDF- %PDF-
Direktori : /www/loslex/production/vendor/livewire/livewire/src/Features/SupportFormObjects/ |
Current File : /www/loslex/production/vendor/livewire/livewire/src/Features/SupportFormObjects/FormObjectSynth.php |
<?php namespace Livewire\Features\SupportFormObjects; use Livewire\Drawer\Utils; use Livewire\Mechanisms\HandleComponents\Synthesizers\Synth; use Livewire\Features\SupportAttributes\AttributeCollection; use function Livewire\wrap; class FormObjectSynth extends Synth { public static $key = 'form'; static function match($target) { return $target instanceof Form; } function dehydrate($target, $dehydrateChild) { $data = $target->toArray(); foreach ($data as $key => $child) { $data[$key] = $dehydrateChild($key, $child); } return [$data, ['class' => get_class($target)]]; } function hydrate($data, $meta, $hydrateChild) { $form = new $meta['class']($this->context->component, $this->path); $callBootMethod = static::bootFormObject($this->context->component, $form, $this->path); foreach ($data as $key => $child) { if ($child === null && Utils::propertyIsTypedAndUninitialized($form, $key)) { continue; } $form->$key = $hydrateChild($key, $child); } $callBootMethod(); return $form; } function set(&$target, $key, $value) { if ($value === null && Utils::propertyIsTyped($target, $key)) { unset($target->$key); } else { $target->$key = $value; } } public static function bootFormObject($component, $form, $path) { $component->mergeOutsideAttributes( AttributeCollection::fromComponent($component, $form, $path . '.') ); return function () use ($form) { wrap($form)->boot(); }; } }