protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $isInNamespace = false;
        $isImported = false; // e.g. use DateTime;

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_NAMESPACE)) {
                $isInNamespace = true;

                continue;
            }

            if ($token->isGivenKind(T_USE) && $isInNamespace) {
                $nextIndex = $tokens->getNextMeaningfulToken($index);
                if ('datetime' !== strtolower($tokens[$nextIndex]->getContent())) {
                    continue;
                }
                $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
                if ($tokens[$nextNextIndex]->equals(';')) {
                    $isImported = true;
                }

                $index = $nextNextIndex;

                continue;
            }

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $lowercaseContent = strtolower($token->getContent());

            if ('datetime' === $lowercaseContent) {
                $this->fixClassUsage($tokens, $index, $isInNamespace, $isImported);
                $limit = $tokens->count(); // update limit, as fixing class usage may insert new token
            } elseif ('date_create' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable');
            } elseif ('date_create_from_format' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable_from_format');
            }
        }
    }
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $isInNamespace = false;
        $isImported = false; 

        for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
            $token = $tokens[$index];

            if ($token->isGivenKind(T_NAMESPACE)) {
                $isInNamespace = true;

                continue;
            }

            if ($token->isGivenKind(T_USE) && $isInNamespace) {
                $nextIndex = $tokens->getNextMeaningfulToken($index);
                if ('datetime' !== strtolower($tokens[$nextIndex]->getContent())) {
                    continue;
                }
                $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
                if ($tokens[$nextNextIndex]->equals(';')) {
                    $isImported = true;
                }

                $index = $nextNextIndex;

                continue;
            }

            if (!$token->isGivenKind(T_STRING)) {
                continue;
            }

            $lowercaseContent = strtolower($token->getContent());

            if ('datetime' === $lowercaseContent) {
                $this->fixClassUsage($tokens, $index, $isInNamespace, $isImported);
                $limit = $tokens->count(); 
            } elseif ('date_create' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable');
            } elseif ('date_create_from_format' === $lowercaseContent) {
                $this->fixFunctionUsage($tokens, $index, 'date_create_immutable_from_format');
            }
        }
    }
protected function applyFix ( \ SplFileInfo $ file , Tokens $ tokens ) { $ isInNamespace = false ; $ isImported = false ; // e.g. use DateTime; for ( $ index = 0 , $ limit = $ tokens -> count ( ) ; $ index < $ limit ; ++ $ index ) { $ token = $ tokens [ $ index ] ; if ( $ token -> isGivenKind ( T_NAMESPACE ) ) { $ isInNamespace = true ; continue ; } if ( $ token -> isGivenKind ( T_USE ) && $ isInNamespace ) { $ nextIndex = $ tokens -> getNextMeaningfulToken ( $ index ) ; if ( 'datetime' !== strtolower ( $ tokens [ $ nextIndex ] -> getContent ( ) ) ) { continue ; } $ nextNextIndex = $ tokens -> getNextMeaningfulToken ( $ nextIndex ) ; if ( $ tokens [ $ nextNextIndex ] -> equals ( ';' ) ) { $ isImported = true ; } $ index = $ nextNextIndex ; continue ; } if ( ! $ token -> isGivenKind ( T_STRING ) ) { continue ; } $ lowercaseContent = strtolower ( $ token -> getContent ( ) ) ; if ( 'datetime' === $ lowercaseContent ) { $ this -> fixClassUsage ( $ tokens , $ index , $ isInNamespace , $ isImported ) ; $ limit = $ tokens -> count ( ) ; // update limit, as fixing class usage may insert new token } elseif ( 'date_create' === $ lowercaseContent ) { $ this -> fixFunctionUsage ( $ tokens , $ index , 'date_create_immutable' ) ; } elseif ( 'date_create_from_format' === $ lowercaseContent ) { $ this -> fixFunctionUsage ( $ tokens , $ index , 'date_create_immutable_from_format' ) ; } } }
{@inheritdoc}
{