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; ...@@ -4,7 +4,6 @@ namespace WPDesk\Forms;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use WPDesk\Persistence\PersistentContainer; use WPDesk\Persistence\PersistentContainer;
use Psr\Container\ContainerInterface;
/** /**
* Persistent container support for forms. * Persistent container support for forms.
......
...@@ -6,7 +6,6 @@ use WPDesk\Forms\Field; ...@@ -6,7 +6,6 @@ use WPDesk\Forms\Field;
use WPDesk\Forms\Sanitizer; use WPDesk\Forms\Sanitizer;
use WPDesk\Forms\Sanitizer\NoSanitize; use WPDesk\Forms\Sanitizer\NoSanitize;
use WPDesk\Forms\Serializer; use WPDesk\Forms\Serializer;
use WPDesk\Forms\Serializer\NoSerialize;
use WPDesk\Forms\Validator; use WPDesk\Forms\Validator;
use WPDesk\Forms\Validator\ChainValidator; use WPDesk\Forms\Validator\ChainValidator;
use WPDesk\Forms\Validator\RequiredValidator; use WPDesk\Forms\Validator\RequiredValidator;
...@@ -33,6 +32,35 @@ abstract class BasicField implements Field { ...@@ -33,6 +32,35 @@ abstract class BasicField implements Field {
'serializer' => null, '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 { final public function get_label(): string {
return $this->meta['label']; return $this->meta['label'];
} }
...@@ -51,11 +79,6 @@ abstract class BasicField implements Field { ...@@ -51,11 +79,6 @@ abstract class BasicField implements Field {
return ! empty( $this->meta['description_tip'] ); 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 { final public function get_description(): string {
return $this->meta['description']; return $this->meta['description'];
} }
...@@ -80,10 +103,6 @@ abstract class BasicField implements Field { ...@@ -80,10 +103,6 @@ abstract class BasicField implements Field {
return $this; return $this;
} }
public function get_type(): string {
return 'text';
}
final public function set_placeholder( string $value ): Field { final public function set_placeholder( string $value ): Field {
$this->attributes['placeholder'] = $value; $this->attributes['placeholder'] = $value;
...@@ -132,9 +151,6 @@ abstract class BasicField implements Field { ...@@ -132,9 +151,6 @@ abstract class BasicField implements Field {
return $this->attributes['id'] ?? sanitize_title( $this->get_name() ); return $this->attributes['id'] ?? sanitize_title( $this->get_name() );
} }
public function get_name(): string {
return $this->attributes['name'];
}
final public function is_multiple(): bool { final public function is_multiple(): bool {
return $this->attributes['multiple']; return $this->attributes['multiple'];
...@@ -211,35 +227,12 @@ abstract class BasicField implements Field { ...@@ -211,35 +227,12 @@ abstract class BasicField implements Field {
return $this; 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 { final public function is_required(): bool {
return $this->attributes['required']; return $this->attributes['required'];
} }
public function get_sanitizer(): Sanitizer { final public function has_serializer(): bool {
return new NoSanitize(); return ! empty( $this->meta['serializer'] );
}
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 get_priority(): int { final public function get_priority(): int {
......
...@@ -8,7 +8,7 @@ namespace WPDesk\Forms\Field; ...@@ -8,7 +8,7 @@ namespace WPDesk\Forms\Field;
* @package WPDesk\Forms * @package WPDesk\Forms
*/ */
abstract class NoValueField extends BasicField { abstract class NoValueField extends BasicField {
public function get_name(): string { public function __construct() {
return ''; $this->set_name( '' );
} }
} }
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
namespace WPDesk\Forms; namespace WPDesk\Forms;
use WPDesk\Persistence\PersistentContainer;
use WPDesk\View\Renderer\Renderer; use WPDesk\View\Renderer\Renderer;
/** /**
......
...@@ -94,8 +94,6 @@ class FormWithFields implements Form, ContainerForm, FieldProvider { ...@@ -94,8 +94,6 @@ class FormWithFields implements Form, ContainerForm, FieldProvider {
/** /**
* Add array to update data. * Add array to update data.
*
* @param array|ContainerInterface $request new data to update.
*/ */
public function handle_request( array $request = [] ) { public function handle_request( array $request = [] ) {
if ( $this->updated_data === null ) { if ( $this->updated_data === null ) {
......
...@@ -26,7 +26,11 @@ class FieldPersistenceStrategy { ...@@ -26,7 +26,11 @@ class FieldPersistenceStrategy {
public function persist_fields( FieldProvider $fields_provider, array $data ) { public function persist_fields( FieldProvider $fields_provider, array $data ) {
foreach ( $fields_provider->get_fields() as $field ) { foreach ( $fields_provider->get_fields() as $field ) {
$field_key = $field->get_name(); $field_key = $field->get_name();
if ( $field->has_serializer() ) {
$this->persistence->set( $field_key, $field->get_serializer()->serialize( $data[ $field_key ] ) ); $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 { ...@@ -38,7 +42,11 @@ class FieldPersistenceStrategy {
foreach ( $fields_provider->get_fields() as $field ) { foreach ( $fields_provider->get_fields() as $field ) {
$field_key = $field->get_name(); $field_key = $field->get_name();
try { try {
if ( $field->has_serializer() ) {
$data[ $field_key ] = $field->get_serializer()->unserialize( $this->persistence->get( $field_key ) ); $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 ) { } catch ( NotFoundExceptionInterface $not_found ) {
// TODO: Logger // TODO: Logger
// LoggerFactory::get_logger()->info( "FieldPersistenceStrategy:: Field {$field_key} not found" ); // 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