Skip to content
Snippets Groups Projects
Select Git revision
  • 26d6b65a80e05e5b7d938f9211513251d113ce81
  • master default protected
  • devel
  • feature/add-escaping-to-templates
  • feature/add-priority-sorting
  • 3.3.0
  • 3.2.1
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • 2.4.12
  • 2.4.11
  • 2.4.10
  • 2.4.9
  • 2.4.8
  • 2.4.7
  • 2.4.6
  • 2.4.5
  • 2.4.4
  • 2.4.2
  • 2.4.1
  • 2.4.0
  • 2.3.2
  • 2.3.1
  • 2.3
25 results

InputNumberField.php

Blame
  • LegacyExtension.php 1.60 KiB
    <?php
    
    declare(strict_types=1);
    
    namespace WPDesk\Init\Extension;
    
    use Psr\Container\ContainerInterface;
    use WPDesk\Init\Binding\Loader\BindingDefinitions;
    use WPDesk\Init\Binding\Loader\EmptyDefinitions;
    use WPDesk\Init\Configuration\ReadableConfig;
    use WPDesk\Init\DependencyInjection\ContainerBuilder;
    use WPDesk\Init\Plugin\Plugin;
    
    class LegacyExtension implements Extension {
    
    	public function build( ContainerBuilder $builder, Plugin $plugin, ReadableConfig $config ): void {
    		if ( ! $config->has( 'plugin_class_name' ) ) {
    			throw new \LogicException( 'To use legacy driver you must set "plugin_class_name" in your config pointing to the class name of your plugin.' );
    		}
    
    		$builder->add_definitions(
    			[
    				\WPDesk_Plugin_Info::class => $this->as_plugin_info( $plugin, $config ),
    			]
    		);
    	}
    
    	private function as_plugin_info( Plugin $plugin, ReadableConfig $config ): \WPDesk_Plugin_Info {
    		$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_info->set_product_id( $config->get( 'product_id', '' ) );
    		$plugin_info->set_plugin_shops( $config->get( 'shops', [] ) );
    
    		return $plugin_info;
    	}
    
    	public function bindings( ContainerInterface $c ): BindingDefinitions {
    		return new EmptyDefinitions();
    	}
    }