ConfigVisitor.php (1690B)
1 <?php 2 3 namespace PartKeepr\SetupBundle\Visitor; 4 5 class ConfigVisitor extends \PHPParser_NodeVisitorAbstract 6 { 7 private static $configValues = []; 8 9 public function enterNode(\PHPParser_Node $node) 10 { 11 if ($node instanceof \PHPParser_Node_Expr_MethodCall) { 12 if ($node->var->name == 'container' && $node->name == 'setParameter') { 13 if (array_key_exists(0, $node->args) && array_key_exists(1, $node->args)) { 14 if ($node->args[1]->value instanceof \PHPParser_Node_Scalar_String) { 15 self::$configValues[$node->args[0]->value->value] = $node->args[1]->value->value; 16 } elseif ($node->args[1]->value instanceof \PHPParser_Node_Scalar_LNumber) { 17 self::$configValues[$node->args[0]->value->value] = $node->args[1]->value->value; 18 } elseif ($node->args[1]->value instanceof \PHPParser_Node_Expr_ConstFetch) { 19 switch (strtolower($node->args[1]->value->name->parts[0])) { 20 case 'true': 21 $value = true; 22 break; 23 case 'false': 24 $value = false; 25 break; 26 case 'null': 27 $value = null; 28 break; 29 } 30 self::$configValues[$node->args[0]->value->value] = $value; 31 } 32 } 33 } 34 } 35 } 36 37 public static function getConfigValues() 38 { 39 return self::$configValues; 40 } 41 }