REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 6.21 KB
Close
//opt/cpanel/ea-wappspector/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractArraySniff.php
Text
Base64
<?php /** * Processes single and multi-line arrays. * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Util\Tokens; abstract class AbstractArraySniff implements Sniff { /** * Returns an array of tokens this test wants to listen for. * * @return array<int|string> */ final public function register() { return [ T_ARRAY, T_OPEN_SHORT_ARRAY, ]; }//end register() /** * Processes this sniff, when one of its tokens is encountered. * * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being checked. * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * * @return void */ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); if ($tokens[$stackPtr]['code'] === T_ARRAY) { $phpcsFile->recordMetric($stackPtr, 'Short array syntax used', 'no'); $arrayStart = $tokens[$stackPtr]['parenthesis_opener']; if (isset($tokens[$arrayStart]['parenthesis_closer']) === false) { // Incomplete array. return; } $arrayEnd = $tokens[$arrayStart]['parenthesis_closer']; } else { $phpcsFile->recordMetric($stackPtr, 'Short array syntax used', 'yes'); $arrayStart = $stackPtr; $arrayEnd = $tokens[$stackPtr]['bracket_closer']; } $lastContent = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($arrayEnd - 1), null, true); if ($tokens[$lastContent]['code'] === T_COMMA) { // Last array item ends with a comma. $phpcsFile->recordMetric($stackPtr, 'Array end comma', 'yes'); } else { $phpcsFile->recordMetric($stackPtr, 'Array end comma', 'no'); } $indices = []; $current = $arrayStart; while (($next = $phpcsFile->findNext(Tokens::$emptyTokens, ($current + 1), $arrayEnd, true)) !== false) { $end = $this->getNext($phpcsFile, $next, $arrayEnd); if ($tokens[$end]['code'] === T_DOUBLE_ARROW) { $indexEnd = $phpcsFile->findPrevious(T_WHITESPACE, ($end - 1), null, true); $valueStart = $phpcsFile->findNext(Tokens::$emptyTokens, ($end + 1), null, true); $indices[] = [ 'index_start' => $next, 'index_end' => $indexEnd, 'arrow' => $end, 'value_start' => $valueStart, ]; } else { $valueStart = $next; $indices[] = ['value_start' => $valueStart]; } $current = $this->getNext($phpcsFile, $valueStart, $arrayEnd); } if ($tokens[$arrayStart]['line'] === $tokens[$arrayEnd]['line']) { $this->processSingleLineArray($phpcsFile, $stackPtr, $arrayStart, $arrayEnd, $indices); } else { $this->processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $arrayEnd, $indices); } }//end process() /** * Find next separator in array - either: comma or double arrow. * * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being checked. * @param int $ptr The position of current token. * @param int $arrayEnd The token that ends the array definition. * * @return int */ private function getNext(File $phpcsFile, $ptr, $arrayEnd) { $tokens = $phpcsFile->getTokens(); while ($ptr < $arrayEnd) { if (isset($tokens[$ptr]['scope_closer']) === true) { $ptr = $tokens[$ptr]['scope_closer']; } else if (isset($tokens[$ptr]['parenthesis_closer']) === true) { $ptr = $tokens[$ptr]['parenthesis_closer']; } else if (isset($tokens[$ptr]['bracket_closer']) === true) { $ptr = $tokens[$ptr]['bracket_closer']; } if ($tokens[$ptr]['code'] === T_COMMA || $tokens[$ptr]['code'] === T_DOUBLE_ARROW ) { return $ptr; } ++$ptr; } return $ptr; }//end getNext() /** * Processes a single-line array definition. * * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being checked. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * @param int $arrayStart The token that starts the array definition. * @param int $arrayEnd The token that ends the array definition. * @param array $indices An array of token positions for the array keys, * double arrows, and values. * * @return void */ abstract protected function processSingleLineArray($phpcsFile, $stackPtr, $arrayStart, $arrayEnd, $indices); /** * Processes a multi-line array definition. * * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being checked. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * @param int $arrayStart The token that starts the array definition. * @param int $arrayEnd The token that ends the array definition. * @param array $indices An array of token positions for the array keys, * double arrows, and values. * * @return void */ abstract protected function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $arrayEnd, $indices); }//end class
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
AbstractArraySniff.php
6.21 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AbstractPatternSniff.php
34.40 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AbstractScopeSniff.php
6.69 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AbstractVariableSniff.php
8.85 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DeprecatedSniff.php
1.88 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Sniff.php
2.73 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).