@@ -26,7 +26,7 @@ abstract class BaseNode implements NodeInterface
2626{
2727 const DEFAULT_PATH_SEPARATOR = '. ' ;
2828
29- private static $ placeholderUniquePrefix ;
29+ private static $ placeholderUniquePrefixes = [] ;
3030 private static $ placeholders = [];
3131
3232 protected $ name ;
@@ -74,7 +74,7 @@ public static function setPlaceholder(string $placeholder, array $values): void
7474 }
7575
7676 /**
77- * Sets a common prefix for dynamic placeholder values.
77+ * Adds a common prefix for dynamic placeholder values.
7878 *
7979 * Matching configuration values will be skipped from being processed and are returned as is, thus preserving the
8080 * placeholder. An exact match provided by {@see setPlaceholder()} might take precedence.
@@ -83,7 +83,7 @@ public static function setPlaceholder(string $placeholder, array $values): void
8383 */
8484 public static function setPlaceholderUniquePrefix (string $ prefix ): void
8585 {
86- self ::$ placeholderUniquePrefix = $ prefix ;
86+ self ::$ placeholderUniquePrefixes [] = $ prefix ;
8787 }
8888
8989 /**
@@ -93,7 +93,7 @@ public static function setPlaceholderUniquePrefix(string $prefix): void
9393 */
9494 public static function resetPlaceholders (): void
9595 {
96- self ::$ placeholderUniquePrefix = null ;
96+ self ::$ placeholderUniquePrefixes = [] ;
9797 self ::$ placeholders = [];
9898 }
9999
@@ -513,8 +513,10 @@ private static function resolvePlaceholderValue($value)
513513 return self ::$ placeholders [$ value ];
514514 }
515515
516- if (self ::$ placeholderUniquePrefix && 0 === strpos ($ value , self ::$ placeholderUniquePrefix )) {
517- return [];
516+ foreach (self ::$ placeholderUniquePrefixes as $ placeholderUniquePrefix ) {
517+ if (0 === strpos ($ value , $ placeholderUniquePrefix )) {
518+ return [];
519+ }
518520 }
519521 }
520522
0 commit comments