Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PuliBetaStrategy.php

class PuliBetaStrategy

Find candidates using Puli.

@internal

@final

@author David de Boer <david@ddeboer.nl> @author Márk Sági-Kazár <mark.sagikazar@gmail.com>

Hierarchy

  • class \Http\Discovery\Strategy\PuliBetaStrategy implements \Http\Discovery\Strategy\DiscoveryStrategy

Expanded class hierarchy of PuliBetaStrategy

File

vendor/php-http/discovery/src/Strategy/PuliBetaStrategy.php, line 20

Namespace

Http\Discovery\Strategy
View source
class PuliBetaStrategy implements DiscoveryStrategy {
    
    /**
     * @var GeneratedPuliFactory
     */
    protected static $puliFactory;
    
    /**
     * @var Discovery
     */
    protected static $puliDiscovery;
    
    /**
     * @return GeneratedPuliFactory
     *
     * @throws PuliUnavailableException
     */
    private static function getPuliFactory() {
        if (null === self::$puliFactory) {
            if (!defined('PULI_FACTORY_CLASS')) {
                throw new PuliUnavailableException('Puli Factory is not available');
            }
            $puliFactoryClass = PULI_FACTORY_CLASS;
            if (!ClassDiscovery::safeClassExists($puliFactoryClass)) {
                throw new PuliUnavailableException('Puli Factory class does not exist');
            }
            self::$puliFactory = new $puliFactoryClass();
        }
        return self::$puliFactory;
    }
    
    /**
     * Returns the Puli discovery layer.
     *
     * @return Discovery
     *
     * @throws PuliUnavailableException
     */
    private static function getPuliDiscovery() {
        if (!isset(self::$puliDiscovery)) {
            $factory = self::getPuliFactory();
            $repository = $factory->createRepository();
            self::$puliDiscovery = $factory->createDiscovery($repository);
        }
        return self::$puliDiscovery;
    }
    public static function getCandidates($type) {
        $returnData = [];
        $bindings = self::getPuliDiscovery()->findBindings($type);
        foreach ($bindings as $binding) {
            $condition = true;
            if ($binding->hasParameterValue('depends')) {
                $condition = $binding->getParameterValue('depends');
            }
            $returnData[] = [
                'class' => $binding->getClassName(),
                'condition' => $condition,
            ];
        }
        return $returnData;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
PuliBetaStrategy::$puliDiscovery protected static property
PuliBetaStrategy::$puliFactory protected static property
PuliBetaStrategy::getCandidates public static function Find a resource of a specific type. Overrides DiscoveryStrategy::getCandidates
PuliBetaStrategy::getPuliDiscovery private static function Returns the Puli discovery layer.
PuliBetaStrategy::getPuliFactory private static function

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal