PHP 8.2.31
Preview: CatchHelper.php Size: 2.18 KB
/opt/cpanel/ea-wappspector/vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/CatchHelper.php

<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

use PHP_CodeSniffer\Files\File;
use function in_array;
use const T_BITWISE_OR;
use const T_CATCH;
use const T_FINALLY;

/**
 * @internal
 */
class CatchHelper
{

	public static function getTryEndPointer(File $phpcsFile, int $catchPointer): int
	{
		$tokens = $phpcsFile->getTokens();

		$endPointer = $tokens[$catchPointer]['scope_closer'];

		do {
			$nextPointer = TokenHelper::findNextEffective($phpcsFile, $endPointer + 1);

			if ($nextPointer === null || !in_array($tokens[$nextPointer]['code'], [T_CATCH, T_FINALLY], true)) {
				break;
			}

			$endPointer = $tokens[$nextPointer]['scope_closer'];

		} while (true);

		return $endPointer;
	}

	/**
	 * @param array<string, array<int, int|string>|int|string> $catchToken
	 * @return list<string>
	 */
	public static function findCaughtTypesInCatch(File $phpcsFile, array $catchToken): array
	{
		/** @var int $catchParenthesisOpenerPointer */
		$catchParenthesisOpenerPointer = $catchToken['parenthesis_opener'];
		/** @var int $catchParenthesisCloserPointer */
		$catchParenthesisCloserPointer = $catchToken['parenthesis_closer'];

		$nameEndPointer = $catchParenthesisOpenerPointer;
		$tokens = $phpcsFile->getTokens();
		$caughtTypes = [];
		do {
			$nameStartPointer = TokenHelper::findNext(
				$phpcsFile,
				[T_BITWISE_OR, ...TokenHelper::NAME_TOKEN_CODES],
				$nameEndPointer + 1,
				$catchParenthesisCloserPointer,
			);
			if ($nameStartPointer === null) {
				break;
			}

			if ($tokens[$nameStartPointer]['code'] === T_BITWISE_OR) {
				/** @var int $nameStartPointer */
				$nameStartPointer = TokenHelper::findNextEffective($phpcsFile, $nameStartPointer + 1, $catchParenthesisCloserPointer);
			}

			$pointerAfterNameEndPointer = TokenHelper::findNextExcluding($phpcsFile, TokenHelper::NAME_TOKEN_CODES, $nameStartPointer + 1);
			$nameEndPointer = $pointerAfterNameEndPointer === null ? $nameStartPointer : $pointerAfterNameEndPointer - 1;

			$caughtTypes[] = NamespaceHelper::resolveClassName(
				$phpcsFile,
				TokenHelper::getContent($phpcsFile, $nameStartPointer, $nameEndPointer),
				$catchParenthesisOpenerPointer,
			);
		} while (true);

		return $caughtTypes;
	}

}

Directory Contents

Dirs: 0 × Files: 41

Name Size Perms Modified Actions
1.11 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
8.67 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
10.15 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
6.25 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
3.60 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.14 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
5.00 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.18 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
3.03 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
430 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.52 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
10.20 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.03 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
7.12 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
502 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.97 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
16.55 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
7.34 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.84 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
5.80 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
893 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.27 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.56 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
6.39 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.32 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
15.13 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.48 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
1.20 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.01 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
485 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.27 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
4.97 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
12.87 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
774 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
740 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
966 B lrw-r--r-- 2025-09-13 08:53:30
Edit Download
10.67 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
2.53 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
7.82 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
5.03 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download
9.28 KB lrw-r--r-- 2025-09-13 08:53:30
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).