Skip to content
Snippets Groups Projects
Verified Commit 5f773348 authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

refactor: favor NullObject pattern, instead of exception

parent b33d5e9f
No related branches found
No related tags found
2 merge requests!3improve into wp-hook and some additional unfinished things,!21.x
<?php
declare(strict_types=1);
namespace WPDesk\Init\Binding\Definition;
use WPDesk\Init\Binding\Definition;
/** @implements Definition<mixed> */
class UnknownDefinition implements Definition {
/** @var ?string */
private $hook;
/** @var mixed */
private $value;
public function __construct(
$value,
?string $hook = null,
) {
$this->value = $value;
$this->hook = $hook;
}
public function hook(): ?string {
return $this->hook;
}
public function value() {
return $this->value;
}
}
...@@ -7,6 +7,7 @@ namespace WPDesk\Init\Binding; ...@@ -7,6 +7,7 @@ namespace WPDesk\Init\Binding;
use WPDesk\Init\Binding\Definition\CallableDefinition; use WPDesk\Init\Binding\Definition\CallableDefinition;
use WPDesk\Init\Binding\Definition\HookBinderDefinition; use WPDesk\Init\Binding\Definition\HookBinderDefinition;
use WPDesk\Init\Binding\Definition\HookableDefinition; use WPDesk\Init\Binding\Definition\HookableDefinition;
use WPDesk\Init\Binding\Definition\UnknownDefinition;
use WPDesk\PluginBuilder\Plugin\Hookable; use WPDesk\PluginBuilder\Plugin\Hookable;
class DefinitionFactory { class DefinitionFactory {
...@@ -21,13 +22,11 @@ class DefinitionFactory { ...@@ -21,13 +22,11 @@ class DefinitionFactory {
return new HookBinderDefinition( $value, $hook ); return new HookBinderDefinition( $value, $hook );
} }
} }
if ( is_callable( $value ) ) { if ( is_callable( $value ) ) {
return new CallableDefinition( $value, $hook ); return new CallableDefinition( $value, $hook );
} }
// if ( is_array( $value ) ) {
// return new ArrayDefinition( $value, $hook );
// }
throw new \InvalidArgumentException( 'Unknown definition type' ); return new UnknownDefinition( $value, $hook );
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment