Skip to content
Snippets Groups Projects
Verified Commit 19c05c0f authored by Bartek Jaskulski's avatar Bartek Jaskulski Committed by Bartek Jaskulski
Browse files

feat: Add legacy extension support based on configuration

parent 7776ea61
No related branches found
No related tags found
2 merge requests!5feat: remove compilation command,!4feat: remove compilation command
...@@ -68,7 +68,7 @@ final class Init { ...@@ -68,7 +68,7 @@ final class Init {
new ConditionalExtension() new ConditionalExtension()
); );
if ( class_exists( \WPDesk_Plugin_Info::class ) ) { if ( $this->config->get('legacy', false) && class_exists( \WPDesk_Plugin_Info::class ) ) {
$extensions->add( new LegacyExtension() ); $extensions->add( new LegacyExtension() );
} }
......
...@@ -7,10 +7,14 @@ use DI\Container; ...@@ -7,10 +7,14 @@ use DI\Container;
use DI\ContainerBuilder as DiBuilder; use DI\ContainerBuilder as DiBuilder;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use WPDesk\Init\Binding\Binder\CallableBinder; use WPDesk\Init\Binding\Binder\CallableBinder;
use WPDesk\Init\Binding\Binder\CollectionBinder;
use WPDesk\Init\Binding\Binder\CompositeBinder; use WPDesk\Init\Binding\Binder\CompositeBinder;
use WPDesk\Init\Binding\Binder\HookableBinder; use WPDesk\Init\Binding\Binder\HookableBinder;
use WPDesk\Init\Binding\Binder\StoppableBinder; use WPDesk\Init\Binding\Binder\StoppableBinder;
use WPDesk\Init\Binding\Loader\ClusteredLoader;
use WPDesk\Init\Binding\Loader\CompositeBindingLoader; use WPDesk\Init\Binding\Loader\CompositeBindingLoader;
use WPDesk\Init\Binding\Loader\DebugBindingLoader;
use WPDesk\Init\Binding\Loader\OrderedBindingLoader;
use WPDesk\Init\Configuration\Configuration; use WPDesk\Init\Configuration\Configuration;
use WPDesk\Init\DependencyInjection\ContainerBuilder; use WPDesk\Init\DependencyInjection\ContainerBuilder;
use WPDesk\Init\Extension\ExtensionsSet; use WPDesk\Init\Extension\ExtensionsSet;
...@@ -99,6 +103,10 @@ final class Kernel { ...@@ -99,6 +103,10 @@ final class Kernel {
$builder = new ContainerBuilder( $original_builder ); $builder = new ContainerBuilder( $original_builder );
if ( ! function_exists('WPDesk\Init\DI\create') ) {
require __DIR__ . '/di-functions.php';
}
foreach ( $this->extensions as $extension ) { foreach ( $this->extensions as $extension ) {
$extension->build( $builder, $plugin, $this->config ); $extension->build( $builder, $plugin, $this->config );
} }
...@@ -112,6 +120,14 @@ final class Kernel { ...@@ -112,6 +120,14 @@ final class Kernel {
$loader->add( $extension->bindings( $container ) ); $loader->add( $extension->bindings( $container ) );
} }
$loader = new OrderedBindingLoader(
new ClusteredLoader( $loader )
);
if ( $this->config->get('debug', false) ) {
$loader = new DebugBindingLoader( $loader );
}
$driver = new GenericDriver( $driver = new GenericDriver(
$loader, $loader,
new StoppableBinder( new StoppableBinder(
...@@ -123,7 +139,7 @@ final class Kernel { ...@@ -123,7 +139,7 @@ final class Kernel {
) )
); );
if ( class_exists( \WPDesk_Plugin_Info::class ) ) { if ( $this->config->get('legacy', false) ) {
$driver = new CompositeDriver( $driver = new CompositeDriver(
$driver, $driver,
new LegacyDriver( $container ) new LegacyDriver( $container )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment