Cascade\Config\Loader\ClassLoader::getExtraOptionsHandler PHP Method

getExtraOptionsHandler() public method

Get the corresponding handler for a given option
public getExtraOptionsHandler ( string $extraOptionName ) : Closure | null
$extraOptionName string Option name
return Closure | null Corresponding Closure object or null if not found
    public function getExtraOptionsHandler($extraOptionName)
    {
        // Check extraOption handlers that are valid for all classes
        if (isset(self::$extraOptionHandlers['*'][$extraOptionName])) {
            return self::$extraOptionHandlers['*'][$extraOptionName];
        }
        // Check extraOption handlers that are valid for the given class
        if (isset(self::$extraOptionHandlers[$this->class][$extraOptionName])) {
            return self::$extraOptionHandlers[$this->class][$extraOptionName];
        }
        return null;
    }

Usage Example

 public function testGetExtraOptionsHandler()
 {
     ClassLoader::$extraOptionHandlers = array('*' => array('hello' => function ($instance, $value) {
         $instance->setHello(strtoupper($value));
     }), 'Cascade\\Tests\\Fixtures\\SampleClass' => array('there' => function ($instance, $value) {
         $instance->setThere(strtoupper($value) . '!!!');
     }));
     $loader = new ClassLoader(array());
     $existingHandler = $loader->getExtraOptionsHandler('hello');
     $this->assertNotNull($existingHandler);
     $this->assertTrue(is_callable($existingHandler));
     $this->assertNull($loader->getExtraOptionsHandler('nohandler'));
 }