PluginProbe ʕ •ᴥ•ʔ
Custom Twitter Feeds – A Tweets Widget or X Feed Widget / 2.8.0
Custom Twitter Feeds – A Tweets Widget or X Feed Widget v2.8.0
2.8.0 2.7.0 2.6.1 2.6.0 1.0 1.0.1 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.2 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3 1.4 1.4.1 1.5 1.5.1 1.6 1.6.1 1.7 1.8 1.8.1 1.8.2 1.8.3 1.8.4 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1 2.1.1 2.1.2 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.5.4 2.5.5 trunk
custom-twitter-feeds / vendor / php-di / phpdoc-reader / src / PhpDocReader / PhpParser / UseStatementParser.php
custom-twitter-feeds / vendor / php-di / phpdoc-reader / src / PhpDocReader / PhpParser Last commit date
TokenParser.php 4 weeks ago UseStatementParser.php 4 weeks ago
UseStatementParser.php
57 lines
1 <?php
2
3
4 namespace Smashballoon\TwitterFeed\Vendor\PhpDocReader\PhpParser;
5
6 use SplFileObject;
7 /**
8 * Parses a file for "use" declarations.
9 *
10 * Class taken and adapted from doctrine/annotations to avoid pulling the whole package.
11 *
12 * Authors: Fabien Potencier <fabien@symfony.com> and Christian Kaps <christian.kaps@mohiva.com>
13 */
14 class UseStatementParser
15 {
16 /**
17 * @return array A list with use statements in the form (Alias => FQN).
18 */
19 public function parseUseStatements(\ReflectionClass $class): array
20 {
21 $filename = $class->getFilename();
22 if ($filename === \false) {
23 return [];
24 }
25 $content = $this->getFileContent($filename, $class->getStartLine());
26 if ($content === null) {
27 return [];
28 }
29 $namespace = preg_quote($class->getNamespaceName(), '/');
30 $content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\1', $content);
31 $tokenizer = new TokenParser('<?php ' . $content);
32 return $tokenizer->parseUseStatements($class->getNamespaceName());
33 }
34 /**
35 * Gets the content of the file right up to the given line number.
36 *
37 * @param string $filename The name of the file to load.
38 * @param int $lineNumber The number of lines to read from file.
39 */
40 private function getFileContent(string $filename, int $lineNumber): string
41 {
42 if (!is_file($filename)) {
43 throw new \RuntimeException("Unable to read file {$filename}");
44 }
45 $content = '';
46 $lineCnt = 0;
47 $file = new SplFileObject($filename);
48 while (!$file->eof()) {
49 if ($lineCnt++ === $lineNumber) {
50 break;
51 }
52 $content .= $file->fgets();
53 }
54 return $content;
55 }
56 }
57