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

feat: add initial bindings for wp-builder compatibility

parent b51f058a
No related branches found
No related tags found
3 merge requests!3improve into wp-hook and some additional unfinished things,!21.x,!1Draft: Basic implementation of plugin initializer
...@@ -48,7 +48,8 @@ ...@@ -48,7 +48,8 @@
"brain/monkey": "^2.6", "brain/monkey": "^2.6",
"phpstan/phpstan": "^1.10", "phpstan/phpstan": "^1.10",
"szepeviktor/phpstan-wordpress": "^1.3", "szepeviktor/phpstan-wordpress": "^1.3",
"phpstan/extension-installer": "^1.3" "phpstan/extension-installer": "^1.3",
"wpdesk/wp-builder": "^2.0"
}, },
"suggest": { "suggest": {
"wpdesk/wp-basic-requirements": "Enables your plugin to check an environment requirement before instantiation, e.g. PHP version or active plugins" "wpdesk/wp-basic-requirements": "Enables your plugin to check an environment requirement before instantiation, e.g. PHP version or active plugins"
......
<?php
declare( strict_types=1 );
namespace WPDesk\Init\HookDriver;
use Psr\Container\ContainerInterface;
use WPDesk\Init\Configuration\ReadableConfig;
use WPDesk\Init\Plugin;
class LegacyHookableDriver implements HookDriver {
public function register_hooks( ReadableConfig $config, array $bundles, ContainerInterface $container ): void {
$info = $this->as_plugin_info($container->get(Plugin::class), $config);
$class_name = apply_filters_deprecated( 'wp_builder_plugin_class', $info->get_class_name(), '1.0.0', '', 'This hook should not be used.' );
$p = new $class_name($info);
add_action('plugins_loaded', [$p, 'init'], -45);
}
private function as_plugin_info( Plugin $plugin, ReadableConfig $config ) {
global $plugin_class_name;
$plugin_info = new \WPDesk_Plugin_Info();
$plugin_info->set_plugin_file_name($plugin->get_basename());
$plugin_info->set_plugin_name($plugin->get_name());
$plugin_info->set_plugin_dir($plugin->get_path());
$plugin_info->set_version( $plugin->get_version() );
$plugin_info->set_text_domain( $plugin->get_slug() );
$plugin_info->set_plugin_url($plugin->get_url());
$plugin_info->set_class_name($config->get('plugin_class_name', $plugin_class_name));
// $plugin_info->set_product_id( $this->product_id );
// $plugin_info->set_plugin_shops( $this->plugin_shops );
return $plugin_info;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment