Skip to content
Snippets Groups Projects
Select Git revision
  • e9c365231e1cdef95a8d4d0b09f072abdb2c72b0
  • 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

MultipleInputTextField.php

Blame
  • ConditionalExtension.php 2.54 KiB
    <?php
    
    declare(strict_types=1);
    
    namespace WPDesk\Init\Extension;
    
    use DI\Definition\Helper\AutowireDefinitionHelper;
    use Psr\Container\ContainerInterface;
    use Psr\Log\LoggerInterface;
    use WPDesk\Init\Binding\Loader\ArrayDefinitions;
    use WPDesk\Init\Binding\Loader\BindingDefinitions;
    use WPDesk\Init\Configuration\Configuration;
    use WPDesk\Init\Configuration\ReadableConfig;
    use WPDesk\Init\DependencyInjection\ContainerBuilder;
    use WPDesk\Init\Extension\CommonBinding\RequirementsCheck;
    use WPDesk\Init\Extension\CommonBinding\WPDeskLicenseBridge;
    use WPDesk\Init\Extension\CommonBinding\WPDeskTrackerBridge;
    use WPDesk\Init\Plugin\Plugin;
    use WPDesk\Logger\SimpleLoggerFactory;
    
    class ConditionalExtension implements Extension {
    
    	public function bindings( ContainerInterface $c ): BindingDefinitions {
    		$config   = $c->get( Configuration::class );
    		$bindings = [];
    
    		if ( class_exists( \WPDesk_Basic_Requirement_Checker::class ) ) {
    			$bindings[] = [
    				'priority' => -10,
    				'handler'  => RequirementsCheck::class,
    			];
    		}
    
    		if ( class_exists( \WPDesk\License\LicenseServer\PluginRegistrator::class ) ) {
    			$bindings[] = WPDeskLicenseBridge::class;
    		}
    
    		if ( class_exists( \WPDesk_Tracker::class ) ) {
    			$bindings['plugins_loaded'] = WPDeskTrackerBridge::class;
    		}
    
    		return new ArrayDefinitions( $bindings );
    	}
    
    	public function build( ContainerBuilder $builder, Plugin $plugin, ReadableConfig $config ): void {
    		$definitions = [];
    
    		if ( class_exists( \WPDesk_Basic_Requirement_Checker::class ) ) {
    			$definitions[ RequirementsCheck::class ] = new AutowireDefinitionHelper();
    		}
    
    		if ( class_exists( \WPDesk\License\LicenseServer\PluginRegistrator::class ) ) {
    			$definitions[ WPDeskLicenseBridge::class ] = ( new AutowireDefinitionHelper() )
    				->constructorParameter( 'product_id', $config->get( 'product_id' ) )
    				->constructorParameter( 'shops', (array) $config->get( 'shops', [] ) );
    		}
    
    		if ( class_exists( \WPDesk_Tracker::class ) ) {
    			$definitions[ WPDeskTrackerBridge::class ] = new AutowireDefinitionHelper();
    		}
    
    		if ( class_exists( \WPDesk\Logger\SimpleLoggerFactory::class ) ) {
    			$definitions[ LoggerInterface::class ] = static function ( ContainerInterface $c ) {
    				$p = $c->get( Plugin::class );
    
    				return ( new SimpleLoggerFactory(
    					$p->get_slug(),
    					[
    						'level'        => $c->has( 'logger.level' ) ? $c->get( 'logger.level' ) : 'debug',
    						'action_level' => $c->has( 'logger.action_level' ) ? $c->get( 'logger.action_level' ) : null,