Skip to content
Snippets Groups Projects
Select Git revision
  • 8a219ac16d7d4c63462c2911fedc7a8f7e8be9fa
  • master default protected
  • bugfix/wordpress-review
  • bugfix/prevent-error-notice
  • remove-arrow
  • feature/update-message
  • feature/minimum-plugin-version-check-demo1
  • feature/plugin-name
  • 3.7.1
  • 3.7.0
  • 3.6.3
  • 3.6.2
  • 3.6.1
  • 3.6.0
  • 3.6.0-beta3
  • 3.6.0-beta2
  • 3.6.0-beta1
  • 3.5.2
  • 3.5.1
  • 3.5.0
  • 3.4.0
  • 3.3.0
  • 3.2.8
  • 3.2.7
  • 3.2.6
  • 3.2.5
  • 3.2.4
  • 3.2.3
28 results

Test_Basic_Requirement_Checker.php

Blame
  • CallableBinder.php 837 B
    <?php
    
    declare(strict_types=1);
    
    namespace WPDesk\Init\Binding\Binder;
    
    use Psr\Container\ContainerInterface;
    use WPDesk\Init\Binding\ComposableBinder;
    use WPDesk\Init\Binding\Definition;
    use WPDesk\Init\Binding\Definition\CallableDefinition;
    
    class CallableBinder implements ComposableBinder {
    
    	/** @var ContainerInterface */
    	private $container;
    
    	public function __construct( ContainerInterface $c ) {
    		$this->container = $c;
    	}
    
    	public function can_bind( Definition $def ): bool {
    		return $def instanceof CallableDefinition;
    	}
    
    	public function bind( Definition $def ): void {
    		$ref        = new \ReflectionFunction( $def->value() );
    		$parameters = [];
    		foreach ( $ref->getParameters() as $ref_param ) {
    		$parameters[] = $this->container->get( $ref_param->getType()->getName() );
    		}
    		$ref->invokeArgs( $parameters );
    	}
    }