YamlTransformer
class YamlTransformer implements TransformerInterface (View source)
Constants
| BEFORE_FLAG | 
                     
  | 
            
| AFTER_FLAG | 
                     
  | 
            
| ONLY_FLAG | 
                     
  | 
            
| EXCEPT_FLAG | 
                     
  | 
            
Properties
| protected | array | $files | A list of files. Real, full path.  | 
                |
| protected | array | $documents | Store the yaml document content as an array.  | 
                |
| protected | string | $baseDirectory | Base directory used to find yaml files.  | 
                |
| protected | Closure[] | $rules | A list of closures to be used in only/except rules.  | 
                |
| protected | array | $ignoreRules | A list of ignored before/after statements.  | 
                
Methods
This is responsible for parsing a single yaml file and returning it into a format that Config can understand. Config will then be responsible for turning thie output into the final merged config.
This allows config to ignore only/except rules that have been set. This enables apps to ignore built-in rules without causing errors where a rule is undefined.
Because multiple documents aren't supported in symfony/yaml, we have to manually split the files up into their own documents before running them through the parser.
This generates an array of all document depndencies, keyed by document name.
Incapsulates the logic for adding before/after dependencies.
This returns an array of documents which match the given pattern. The pattern is expected to come from before/after blocks of yaml (eg. framwork/*).
We need this to make the path relative from the base directory. We can't use realpath or relative path in Finder because we use a virtual filesystem in testing which doesn't support these methods.
This method gets all headers and all yaml documents and stores them respectively.
This filteres out any yaml documents which don't pass their only or except statement tests.
Tests a rule against the given expected result.
Evaluate condition against a set of data using the appropriate conjuction for the flag
Details
        
                            
    __construct(string $baseDir, Finder $finder)
        
    
    No description
        
                static            YamlTransformer
    create(string $baseDir, Finder $finder)
        
    
    No description
        
                            MutableConfigCollectionInterface
    transform(MutableConfigCollectionInterface $collection)
        
    
    This is responsible for parsing a single yaml file and returning it into a format that Config can understand. Config will then be responsible for turning thie output into the final merged config.
        
                            $this
    addRule(string $rule, Closure $func)
        
    
    This allows external rules to be added to only/except checks. Config is only supposed to be setup once, so adding rules is a one-way system. You cannot remove rules after being set. This also prevent built-in rules from being removed.
        
                    protected        bool
    hasRule($rule)
        
    
    Checks to see if a rule is present
        
                            
    ignoreRule(string $rule)
        
    
    This allows config to ignore only/except rules that have been set. This enables apps to ignore built-in rules without causing errors where a rule is undefined.
This, is a one-way system and is only meant to be configured once. When you ignore a rule, you cannot un-ignore it.
        
                    protected        bool
    isRuleIgnored(string $rule)
        
    
    Checks to see if a rule is ignored
        
                    protected        array
    getNamedYamlDocuments()
        
    
    Returns an array of YAML documents keyed by name.
        
                    protected        array
    splitYamlDocuments()
        
    
    Because multiple documents aren't supported in symfony/yaml, we have to manually split the files up into their own documents before running them through the parser.
Note: This is not a complete implementation of multi-document YAML parsing. There are valid yaml cases where this will fail, however they don't match our use-case.
        
                    protected        array
    calculateDependencies(array $documents)
        
    
    This generates an array of all document depndencies, keyed by document name.
        
                    protected        array
    addDependencies(array $header, string $flag, array $dependencies, array $documents)
        
    
    Incapsulates the logic for adding before/after dependencies.
        
                    protected        array
    getMatchingDocuments(string $pattern, array $documents, string $flag)
        
    
    This returns an array of documents which match the given pattern. The pattern is expected to come from before/after blocks of yaml (eg. framwork/*).
        
                    protected        string
    makeRelative(string $filename)
        
    
    We need this to make the path relative from the base directory. We can't use realpath or relative path in Finder because we use a virtual filesystem in testing which doesn't support these methods.
        
                    protected        array
    getSortedYamlDocuments()
        
    
    This method gets all headers and all yaml documents and stores them respectively.
        
                    protected        array
    filterByOnlyAndExcept()
        
    
    This filteres out any yaml documents which don't pass their only or except statement tests.
        
                    protected        bool
    testRules(array $header, string $flag)
        
    
    Tests the only except rules for a header.
        
                    protected        bool
    testSingleRule(string $rule, string|array $params, string $flag = self::ONLY_FLAG)
        
    
    Tests a rule against the given expected result.
        
                    protected        bool
    evaluateConditions(array $source, string $flag, callable $condition)
        
    
    Evaluate condition against a set of data using the appropriate conjuction for the flag