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

feat: include default extensions in runtime


Signed-off-by: default avatarBart Jaskulski <bjaskulski@protonmail.com>
parent 21716a64
No related branches found
No related tags found
2 merge requests!3improve into wp-hook and some additional unfinished things,!21.x
......@@ -12,6 +12,12 @@ class ExtensionsSet implements \IteratorAggregate {
/** @var array<class-string<Extension>, Extension> */
private $extensions = [];
public function __construct( Extension ...$extensions ) {
foreach ( $extensions as $extension ) {
$this->add( $extension );
}
}
public function add( Extension $extension ): void {
$class = \get_class( $extension );
$this->extensions[ $class ] = $extension;
......
......@@ -56,19 +56,17 @@ final class Init {
$backtrace = \debug_backtrace( \DEBUG_BACKTRACE_IGNORE_ARGS, 1 );
$filename = $backtrace[0]['file'];
$extensions = new ExtensionsSet();
$this->discover_extensions( $extensions );
$kernel = new Kernel( $filename, $this->config, $extensions );
$kernel->boot();
}
private function discover_extensions( $extensions ) {
$extensions->add( new ConfigExtension() );
$extensions->add( new BuiltinExtension() );
$extensions = new ExtensionsSet(
new BuiltinExtension(),
new ConfigExtension(),
new ConditionalExtension()
);
if ( class_exists( \WPDesk_Plugin_Info::class ) ) {
$extensions->add( new LegacyExtension() );
}
$kernel = new Kernel( $filename, $this->config, $extensions );
$kernel->boot();
}
}
......@@ -2,8 +2,10 @@
use WPDesk\Init\Extension\CommonBinding\I18n;
use WPDesk\Init\Extension\CommonBinding\RequirementsCheck;
use WPDesk\Init\Extension\CommonBinding\CustomOrderTableCompatibility;
return [
RequirementsCheck::class,
I18n::class,
CustomOrderTableCompatibility::class,
];
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment