| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 3 namespace WordPress\AiClientDependencies\Http\Discovery\Strategy; 4 5 use WordPress\AiClientDependencies\Http\Discovery\ClassDiscovery; 6 use WordPress\AiClientDependencies\Http\Discovery\Exception\PuliUnavailableException; 7 use WordPress\AiClientDependencies\Puli\Discovery\Api\Discovery; 8 use WordPress\AiClientDependencies\Puli\GeneratedPuliFactory; 9 /** 10 * Find candidates using Puli. 11 * 12 * @internal 13 * 14 * @final 15 * 16 * @author David de Boer <david@ddeboer.nl> 17 * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> 18 */ 19 class PuliBetaStrategy implements DiscoveryStrategy 20 { 21 /** 22 * @var GeneratedPuliFactory 23 */ 24 protected static $puliFactory; 25 /** 26 * @var Discovery 27 */ 28 protected static $puliDiscovery; 29 /** 30 * @return GeneratedPuliFactory 31 * 32 * @throws PuliUnavailableException 33 */ 34 private static function getPuliFactory() 35 { 36 if (null === self::$puliFactory) { 37 if (!defined('PULI_FACTORY_CLASS')) { 38 throw new PuliUnavailableException('Puli Factory is not available'); 39 } 40 $puliFactoryClass = PULI_FACTORY_CLASS; 41 if (!ClassDiscovery::safeClassExists($puliFactoryClass)) { 42 throw new PuliUnavailableException('Puli Factory class does not exist'); 43 } 44 self::$puliFactory = new $puliFactoryClass(); 45 } 46 return self::$puliFactory; 47 } 48 /** 49 * Returns the Puli discovery layer. 50 * 51 * @return Discovery 52 * 53 * @throws PuliUnavailableException 54 */ 55 private static function getPuliDiscovery() 56 { 57 if (!isset(self::$puliDiscovery)) { 58 $factory = self::getPuliFactory(); 59 $repository = $factory->createRepository(); 60 self::$puliDiscovery = $factory->createDiscovery($repository); 61 } 62 return self::$puliDiscovery; 63 } 64 public static function getCandidates($type) 65 { 66 $returnData = []; 67 $bindings = self::getPuliDiscovery()->findBindings($type); 68 foreach ($bindings as $binding) { 69 $condition = \true; 70 if ($binding->hasParameterValue('depends')) { 71 $condition = $binding->getParameterValue('depends'); 72 } 73 $returnData[] = ['class' => $binding->getClassName(), 'condition' => $condition]; 74 } 75 return $returnData; 76 } 77 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sat Jun 13 09:38:55 2026 | Cross-referenced by PHPXref |