
Pesquise o código -fonte do PHP para chamadas de função e método, atribuições variáveis, classes e mais diretamente do PHP.
composer require permafrost-dev/php-code-search Para pesquisar um arquivo, use o método search . Seu único parâmetro pode ser uma string contendo um nome de arquivo válido ou uma instância de PermafrostPhpCodeSearchSupportFile .
Para pesquisar uma string, use o método searchCode .
Os métodos de pesquisa retornam uma instância de PermafrostPhpCodeSearchResultsFileSearchResults , que possui uma propriedade de results .
Cada result é uma instância de PermafrostPhpCodeSearchResultsSearchResult com as seguintes propriedades:
node - o item específico que foi encontradonode->name(): stringlocation - a localização no arquivo que o item foi encontradolocation->startLine(): intlocation->endLine(): intsnippet - um trecho de linhas de código do arquivo com a linha de resultado no meiosnippet->toString(): stringfile() (Método) - fornece acesso ao arquivo que foi pesquisado Para pesquisar no código em uma string ou arquivo, use a classe Searcher :
use Permafrost PhpCodeSearch Searcher ;
$ searcher = new Searcher (); Para pesquisar um arquivo, use o método search e o método searchCode para pesquisar uma string de código.
$ searcher
-> functions ([ ' strtolower ' , ' strtoupper ' ])
-> search ( ' ./file1.php ' );
$ searcher
-> variables ([ ' /^one[A-Z]$/ ' ])
-> searchCode ( ' <?php $oneA = "1a"; ' ); Ao pesquisar usando qualquer um dos métodos disponíveis, expressões regulares podem ser usadas ao redor do nome com slashes / , isto é /testd+/ .
Para procurar variáveis por nome, use o método variables .
$ results = $ searcher
-> variables ([ ' twoA ' , ' /^one.$/ ' ])
-> searchCode ( ' <?php ' .
' $oneA = "1a"; ' .
' $oneB = "1b"; ' .
' $twoA = "2a"; ' .
' $twoB = "2b"; ' .
'' );
foreach ( $ results -> results as $ result ) {
echo " Found ' { $ result -> node -> name ()} ' on line { $ result -> location -> startLine }" . PHP_EOL ;
} Para procurar chamadas ou definições de função, use o método functions .
// search for references AND definitions for 'strtolower' and/or 'myfunc'
$ searcher
-> functions ([ ' strtolower ' , ' myfunc ' ])
-> search ( ' file1.php ' ); Para procurar uma chamada de método por nome, use o método methods .
Os nós de chamada de método possuem uma propriedade args que pode ser acionada para recuperar os argumentos para a chamada do método.
$ results = $ searcher
-> methods ([ ' /test(One|Two)/ ' ])
-> searchCode ( ' <?php ' .
' $obj->testOne("hello world 1"); ' .
' $obj->testTwo("hello world", 2); ' .
''
);
foreach ( $ results -> results as $ result ) {
echo " Found ' { $ result -> node -> name ()} ' on line { $ result -> location -> startLine }" . PHP_EOL ;
foreach ( $ result -> node -> args as $ arg ) {
echo " argument: ' { $ arg -> value } ' " . PHP_EOL ;
}
} Para procurar chamadas de método estático ou propriedade, use o método static .
Termos de pesquisa válidos são um nome de classe como Cache ou um nome de classe e um nome de método como Cache::remember .
$ searcher
-> static ([ ' Ray ' , ' Cache::has ' , ' Request::$myProperty ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Para procurar uma definição de classe ou uma classe criada pela new palavra -chave, use o método classes .
$ searcher
-> classes ([ ' MyController ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Para procurar uma atribuição variável por nome da variável, use o método assignments . Nota: o $ deve ser omitido.
$ searcher
-> assignments ([ ' myVar ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Para retornar os resultados da pesquisa sem trechos de código associados, use o método withoutSnippets :
$ searcher
-> withoutSnippets ()
-> functions ([ ' strtolower ' ])
-> search ( ' file1.php ' );./vendor/bin/phpunitConsulte Changelog para obter mais informações sobre o que mudou recentemente.
Por favor, consulte a contribuição para obter detalhes.
Revise nossa política de segurança sobre como relatar vulnerabilidades de segurança.
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.