Skip to content
Snippets Groups Projects

Draft: Basic implementation of plugin initializer

Closed Bartek Jaskulski requested to merge 1.x into review
2 unresolved threads

Files

<?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;
}
}
Loading