当前位置: 首页>>代码示例>>PHP>>正文


PHP Tokens::getImportUseIndexes方法代码示例

本文整理汇总了PHP中Symfony\CS\Tokenizer\Tokens::getImportUseIndexes方法的典型用法代码示例。如果您正苦于以下问题:PHP Tokens::getImportUseIndexes方法的具体用法?PHP Tokens::getImportUseIndexes怎么用?PHP Tokens::getImportUseIndexes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\CS\Tokenizer\Tokens的用法示例。


在下文中一共展示了Tokens::getImportUseIndexes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: storeImports

 /**
  * @param Tokens $tokens
  */
 private function storeImports(Tokens $tokens, $startIndex, $endIndex)
 {
     $this->imports = array();
     foreach ($tokens->getImportUseIndexes() as $index) {
         if ($index < $startIndex || $index > $endIndex) {
             continue;
         }
         $import = '';
         while ($index = $tokens->getNextMeaningfulToken($index)) {
             if ($tokens[$index]->equalsAny(array(';', '{')) || $tokens[$index]->isGivenKind(T_AS)) {
                 break;
             }
             $import .= $tokens[$index]->getContent();
         }
         // Imports group (PHP 7 spec)
         if ($tokens[$index]->equals('{')) {
             $groupEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
             $groupImports = array_map('trim', explode(',', $tokens->generatePartialCode($index + 1, $groupEndIndex - 1)));
             foreach ($groupImports as $groupImport) {
                 $groupImportParts = array_map('trim', explode(' as ', $groupImport));
                 if (2 === count($groupImportParts)) {
                     $this->imports[$groupImportParts[1]] = $import . $groupImportParts[0];
                 } else {
                     $this->imports[] = $import . $groupImport;
                 }
             }
         } elseif ($tokens[$index]->isGivenKind(T_AS)) {
             $aliasIndex = $tokens->getNextMeaningfulToken($index);
             $alias = $tokens[$aliasIndex]->getContent();
             $this->imports[$alias] = $import;
         } else {
             $this->imports[] = $import;
         }
     }
 }
开发者ID:Doability,项目名称:magento2dev,代码行数:38,代码来源:ClassKeywordRemoveFixer.php

示例2: removeLineBreaksBetweenUseStatements

 private function removeLineBreaksBetweenUseStatements(Tokens $tokens)
 {
     $namespacesImports = $tokens->getImportUseIndexes(true);
     if (!count($namespacesImports)) {
         return;
     }
     foreach ($namespacesImports as $uses) {
         $uses = array_reverse($uses);
         $this->fixLineBreaksPerImportGroup($tokens, $uses);
     }
 }
开发者ID:Doability,项目名称:magento2dev,代码行数:11,代码来源:RemoveLinesBetweenUsesFixer.php

示例3: extract

 /**
  * Copy/paste from a private method of Symfony\CS\Fixer\Symfony\UnusedUseFixer.
  *
  * @param Tokens $tokens
  *
  * @return array
  */
 public function extract(Tokens $tokens)
 {
     $uses = array();
     $useIndexes = $tokens->getImportUseIndexes();
     foreach ($useIndexes as $index) {
         $declarationEndIndex = $tokens->getNextTokenOfKind($index, array(';'));
         $declarationContent = $tokens->generatePartialCode($index + 1, $declarationEndIndex - 1);
         // ignore multiple use statements like: `use BarB, BarC as C, BarD;`
         // that should be split into few separate statements
         if (false !== strpos($declarationContent, ',')) {
             continue;
         }
         $declarationParts = preg_split('/\\s+as\\s+/i', $declarationContent);
         if (1 === count($declarationParts)) {
             $fullName = $declarationContent;
         } else {
             $fullName = $declarationParts[0];
         }
         $uses[] = trim($fullName);
     }
     return $uses;
 }
开发者ID:akeneo,项目名称:php-coupling-detector,代码行数:29,代码来源:UseDeclarationsExtractor.php


注:本文中的Symfony\CS\Tokenizer\Tokens::getImportUseIndexes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。