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

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 { ...@@ -12,6 +12,12 @@ class ExtensionsSet implements \IteratorAggregate {
/** @var array<class-string<Extension>, Extension> */ /** @var array<class-string<Extension>, Extension> */
private $extensions = []; private $extensions = [];
public function __construct( Extension ...$extensions ) {
foreach ( $extensions as $extension ) {
$this->add( $extension );
}
}
public function add( Extension $extension ): void { public function add( Extension $extension ): void {
$class = \get_class( $extension ); $class = \get_class( $extension );
$this->extensions[ $class ] = $extension; $this->extensions[ $class ] = $extension;
......
...@@ -56,19 +56,17 @@ final class Init { ...@@ -56,19 +56,17 @@ final class Init {
$backtrace = \debug_backtrace( \DEBUG_BACKTRACE_IGNORE_ARGS, 1 ); $backtrace = \debug_backtrace( \DEBUG_BACKTRACE_IGNORE_ARGS, 1 );
$filename = $backtrace[0]['file']; $filename = $backtrace[0]['file'];
$extensions = new ExtensionsSet(); $extensions = new ExtensionsSet(
$this->discover_extensions( $extensions ); new BuiltinExtension(),
new ConfigExtension(),
$kernel = new Kernel( $filename, $this->config, $extensions ); new ConditionalExtension()
$kernel->boot(); );
}
private function discover_extensions( $extensions ) {
$extensions->add( new ConfigExtension() );
$extensions->add( new BuiltinExtension() );
if ( class_exists( \WPDesk_Plugin_Info::class ) ) { if ( class_exists( \WPDesk_Plugin_Info::class ) ) {
$extensions->add( new LegacyExtension() ); $extensions->add( new LegacyExtension() );
} }
$kernel = new Kernel( $filename, $this->config, $extensions );
$kernel->boot();
} }
} }
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
use WPDesk\Init\Extension\CommonBinding\I18n; use WPDesk\Init\Extension\CommonBinding\I18n;
use WPDesk\Init\Extension\CommonBinding\RequirementsCheck; use WPDesk\Init\Extension\CommonBinding\RequirementsCheck;
use WPDesk\Init\Extension\CommonBinding\CustomOrderTableCompatibility;
return [ return [
RequirementsCheck::class, RequirementsCheck::class,
I18n::class, I18n::class,
CustomOrderTableCompatibility::class,
]; ];
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment