
Cari Kode Sumber PHP untuk panggilan fungsi & metode, penugasan variabel, kelas dan lebih langsung dari PHP.
composer require permafrost-dev/php-code-search Untuk mencari file, gunakan metode search . Parameternya satu -satunya dapat berupa string yang berisi nama file yang valid atau instance PermafrostPhpCodeSearchSupportFile .
Untuk mencari string sebagai gantinya, gunakan metode searchCode .
Metode pencarian mengembalikan instance dari PermafrostPhpCodeSearchResultsFileSearchResults , yang memiliki properti results .
Setiap result adalah instance dari PermafrostPhpCodeSearchResultsSearchResult dengan properti berikut:
node - item spesifik yang ditemukannode->name(): stringlocation - Lokasi dalam file yang ditemukan itemlocation->startLine(): intlocation->endLine(): intsnippet - Cuplikan baris kode dari file dengan baris hasil di tengahsnippet->toString(): stringfile() (metode) - menyediakan akses ke file yang dicari Untuk mencari melalui kode dalam string atau file, gunakan kelas Searcher :
use Permafrost PhpCodeSearch Searcher ;
$ searcher = new Searcher (); Untuk mencari file, gunakan metode search , dan metode searchCode untuk mencari string kode.
$ searcher
-> functions ([ ' strtolower ' , ' strtoupper ' ])
-> search ( ' ./file1.php ' );
$ searcher
-> variables ([ ' /^one[A-Z]$/ ' ])
-> searchCode ( ' <?php $oneA = "1a"; ' ); Saat mencari menggunakan salah satu metode yang tersedia, ekspresi reguler dapat digunakan dengan mengelilingi nama dengan slash / , yaitu /testd+/ .
Untuk mencari variabel dengan nama, gunakan metode 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 ;
} Untuk mencari panggilan atau definisi fungsi, gunakan metode functions .
// search for references AND definitions for 'strtolower' and/or 'myfunc'
$ searcher
-> functions ([ ' strtolower ' , ' myfunc ' ])
-> search ( ' file1.php ' ); Untuk mencari panggilan metode dengan nama, gunakan metode methods .
Metode node panggilan memiliki properti args yang dapat dililitkan untuk mengambil argumen untuk panggilan metode.
$ 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 ;
}
} Untuk mencari metode statis atau panggilan properti, gunakan metode static .
Istilah pencarian yang valid adalah nama kelas seperti Cache , atau nama kelas dan nama metode seperti Cache::remember .
$ searcher
-> static ([ ' Ray ' , ' Cache::has ' , ' Request::$myProperty ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Untuk mencari definisi kelas atau kelas yang dibuat oleh kata kunci new , gunakan metode classes .
$ searcher
-> classes ([ ' MyController ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Untuk mencari penugasan variabel dengan nama variabel, gunakan metode assignments . Catatan: $ harus dihilangkan.
$ searcher
-> assignments ([ ' myVar ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); Untuk mengembalikan hasil pencarian tanpa cuplikan kode terkait, gunakan metode withoutSnippets :
$ searcher
-> withoutSnippets ()
-> functions ([ ' strtolower ' ])
-> search ( ' file1.php ' );./vendor/bin/phpunitSilakan lihat Changelog untuk informasi lebih lanjut tentang apa yang telah berubah baru -baru ini.
Silakan lihat berkontribusi untuk detailnya.
Harap tinjau kebijakan keamanan kami tentang cara melaporkan kerentanan keamanan.
Lisensi MIT (MIT). Silakan lihat file lisensi untuk informasi lebih lanjut.