Skip to content
Snippets Groups Projects
Unverified Commit 10f426a4 authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

refactor: remove NoSerialize class, due to false serializing process

parent deee9690
No related branches found
No related tags found
No related merge requests found
Pipeline #6128 passed
......@@ -4,7 +4,6 @@ namespace WPDesk\Forms;
use Psr\Container\ContainerInterface;
use WPDesk\Persistence\PersistentContainer;
use Psr\Container\ContainerInterface;
/**
* Persistent container support for forms.
......
......@@ -6,7 +6,6 @@ use WPDesk\Forms\Field;
use WPDesk\Forms\Sanitizer;
use WPDesk\Forms\Sanitizer\NoSanitize;
use WPDesk\Forms\Serializer;
use WPDesk\Forms\Serializer\NoSerialize;
use WPDesk\Forms\Validator;
use WPDesk\Forms\Validator\ChainValidator;
use WPDesk\Forms\Validator\RequiredValidator;
......@@ -33,6 +32,35 @@ abstract class BasicField implements Field {
'serializer' => null,
];
public function should_override_form_template(): bool {
return false;
}
public function get_type(): string {
return 'text';
}
public function get_validator(): Validator {
$chain = new ChainValidator();
if ( $this->is_required() ) {
$chain->attach( new RequiredValidator() );
}
return $chain;
}
public function get_sanitizer(): Sanitizer {
return new NoSanitize();
}
public function get_serializer(): Serializer {
return null;
}
final public function get_name(): string {
return $this->attributes['name'];
}
final public function get_label(): string {
return $this->meta['label'];
}
......@@ -51,11 +79,6 @@ abstract class BasicField implements Field {
return ! empty( $this->meta['description_tip'] );
}
/** Override method if you need. */
public function should_override_form_template(): bool {
return false;
}
final public function get_description(): string {
return $this->meta['description'];
}
......@@ -80,10 +103,6 @@ abstract class BasicField implements Field {
return $this;
}
public function get_type(): string {
return 'text';
}
final public function set_placeholder( string $value ): Field {
$this->attributes['placeholder'] = $value;
......@@ -132,9 +151,6 @@ abstract class BasicField implements Field {
return $this->attributes['id'] ?? sanitize_title( $this->get_name() );
}
public function get_name(): string {
return $this->attributes['name'];
}
final public function is_multiple(): bool {
return $this->attributes['multiple'];
......@@ -211,35 +227,12 @@ abstract class BasicField implements Field {
return $this;
}
public function get_validator(): Validator {
$chain = new ChainValidator();
if ( $this->is_required() ) {
$chain->attach( new RequiredValidator() );
}
return $chain;
}
final public function is_required(): bool {
return $this->attributes['required'];
}
public function get_sanitizer(): Sanitizer {
return new NoSanitize();
}
final public function get_serializer(): Serializer {
if ( ! empty( $this->meta['serializer'] ) && $this->meta['serializer'] instanceof Serializer ) {
return $this->meta['serializer'];
}
return new NoSerialize();
}
public function set_serializer( Serializer $serializer ): Field {
$this->meta['serializer'] = $serializer;
return $this;
final public function has_serializer(): bool {
return ! empty( $this->meta['serializer'] );
}
final public function get_priority(): int {
......
......@@ -8,7 +8,7 @@ namespace WPDesk\Forms\Field;
* @package WPDesk\Forms
*/
abstract class NoValueField extends BasicField {
public function get_name(): string {
return '';
public function __construct() {
$this->set_name( '' );
}
}
......@@ -2,7 +2,6 @@
namespace WPDesk\Forms;
use WPDesk\Persistence\PersistentContainer;
use WPDesk\View\Renderer\Renderer;
/**
......
......@@ -94,8 +94,6 @@ class FormWithFields implements Form, ContainerForm, FieldProvider {
/**
* Add array to update data.
*
* @param array|ContainerInterface $request new data to update.
*/
public function handle_request( array $request = [] ) {
if ( $this->updated_data === null ) {
......
......@@ -26,7 +26,11 @@ class FieldPersistenceStrategy {
public function persist_fields( FieldProvider $fields_provider, array $data ) {
foreach ( $fields_provider->get_fields() as $field ) {
$field_key = $field->get_name();
if ( $field->has_serializer() ) {
$this->persistence->set( $field_key, $field->get_serializer()->serialize( $data[ $field_key ] ) );
} else {
$this->persistence->set( $field_key, $data[ $field_key ] );
}
}
}
......@@ -38,7 +42,11 @@ class FieldPersistenceStrategy {
foreach ( $fields_provider->get_fields() as $field ) {
$field_key = $field->get_name();
try {
if ( $field->has_serializer() ) {
$data[ $field_key ] = $field->get_serializer()->unserialize( $this->persistence->get( $field_key ) );
} else {
$data[ $field_key ] = $this->persistence->get( $field_key );
}
} catch ( NotFoundExceptionInterface $not_found ) {
// TODO: Logger
// LoggerFactory::get_logger()->info( "FieldPersistenceStrategy:: Field {$field_key} not found" );
......
<?php
namespace WPDesk\Forms\Serializer;
use WPDesk\Forms\Serializer;
class NoSerialize implements Serializer {
public function serialize( $value ): string {
return (string) $value;
}
public function unserialize( string $value ) {
return $value;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment