src/Fixer/Alias/RandomApiMigrationFixer.php
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach ($this->configuration['replacements'] as $functionIdentity => $functionReplacement) {
            if ($functionIdentity === $functionReplacement['alternativeName']) {
                continue;
            }

            $currIndex = 0;
            while (null !== $currIndex) {
                // try getting function reference and translate boundaries for humans
                $boundaries = $this->find($functionIdentity, $tokens, $currIndex, $tokens->count() - 1);
                if (null === $boundaries) {
                    // next function search, as current one not found
                    continue 2;
                }

                list($functionName, $openParenthesis, $closeParenthesis) = $boundaries;
                $count = $argumentsAnalyzer->countArguments($tokens, $openParenthesis, $closeParenthesis);
                if (!\in_array($count, $functionReplacement['argumentCount'], true)) {
                    continue 2;
                }

                // analysing cursor shift, so nested calls could be processed
                $currIndex = $openParenthesis;

                $tokens[$functionName] = new Token([T_STRING, $functionReplacement['alternativeName']]);

                if (0 === $count && 'random_int' === $functionReplacement['alternativeName']) {
                    $tokens->insertAt($currIndex + 1, [
                        new Token([T_LNUMBER, '0']),
                        new Token(','),
                        new Token([T_WHITESPACE, ' ']),
                        new Token([T_STRING, 'getrandmax']),
                        new Token('('),
                        new Token(')'),
                    ]);

                    $currIndex += 6;
                }
            }
        }
    }
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $argumentsAnalyzer = new ArgumentsAnalyzer();

        foreach ($this->configuration['replacements'] as $functionIdentity => $functionReplacement) {
            if ($functionIdentity === $functionReplacement['alternativeName']) {
                continue;
            }

            $currIndex = 0;
            while (null !== $currIndex) {
                // try getting function reference and translate boundaries for humans
                $boundaries = $this->find($functionIdentity, $tokens, $currIndex, $tokens->count() - 1);
                if (null === $boundaries) {
                    // next function search, as current one not found
                    continue 2;
                }

                list($functionName, $openParenthesis, $closeParenthesis) = $boundaries;
                $count = $argumentsAnalyzer->countArguments($tokens, $openParenthesis, $closeParenthesis);
                if (!\in_array($count, $functionReplacement['argumentCount'], true)) {
                    continue 2;
                }

                // analysing cursor shift, so nested calls could be processed
                $currIndex = $openParenthesis;

                $tokens[$functionName] = new Token([T_STRING, $functionReplacement['alternativeName']]);

                if (0 === $count && 'random_int' === $functionReplacement['alternativeName']) {
                    $tokens->insertAt($currIndex + 1, [
                        new Token([T_LNUMBER, '0']),
                        new Token(','),
                        new Token([T_WHITESPACE, ' ']),
                        new Token([T_STRING, 'getrandmax']),
                        new Token('('),
                        new Token(')'),
                    ]);

                    $currIndex += 6;
                }
            }
        }
    }
protected function applyFix ( \ SplFileInfo $ file , Tokens $ tokens ) { $ argumentsAnalyzer = new ArgumentsAnalyzer ( ) ; foreach ( $ this -> configuration [ 'replacements' ] as $ functionIdentity => $ functionReplacement ) { if ( $ functionIdentity === $ functionReplacement [ 'alternativeName' ] ) { continue ; } $ currIndex = 0 ; while ( null !== $ currIndex ) { // try getting function reference and translate boundaries for humans $ boundaries = $ this -> find ( $ functionIdentity , $ tokens , $ currIndex , $ tokens -> count ( ) - 1 ) ; if ( null === $ boundaries ) { // next function search, as current one not found continue 2 ; } list ( $ functionName , $ openParenthesis , $ closeParenthesis ) = $ boundaries ; $ count = $ argumentsAnalyzer -> countArguments ( $ tokens , $ openParenthesis , $ closeParenthesis ) ; if ( ! \ in_array ( $ count , $ functionReplacement [ 'argumentCount' ] , true ) ) { continue 2 ; } // analysing cursor shift, so nested calls could be processed $ currIndex = $ openParenthesis ; $ tokens [ $ functionName ] = new Token ( [ T_STRING , $ functionReplacement [ 'alternativeName' ] ] ) ; if ( 0 === $ count && 'random_int' === $ functionReplacement [ 'alternativeName' ] ) { $ tokens -> insertAt ( $ currIndex + 1 , [ new Token ( [ T_LNUMBER , '0' ] ) , new Token ( ',' ) , new Token ( [ T_WHITESPACE , ' ' ] ) , new Token ( [ T_STRING , 'getrandmax' ] ) , new Token ( '(' ) , new Token ( ')' ) , ] ) ; $ currIndex += 6 ; } } } }
{@inheritdoc}
{