
البحث عن رمز مصدر PHP لمكالمات الوظيفة والأسلوب ، والتعيينات المتغيرة ، والفئات والمزيد من PHP.
composer require permafrost-dev/php-code-search للبحث في ملف ، استخدم طريقة search . قد تكون المعلمة الوحيدة إما سلسلة تحتوي على اسم ملف صالح أو مثيل لـ PermafrostPhpCodeSearchSupportFile .
للبحث في سلسلة بدلاً من ذلك ، استخدم طريقة searchCode .
تقوم أساليب البحث بإرجاع مثيل PermafrostPhpCodeSearchResultsFileSearchResults ، والذي يحتوي على خاصية results .
كل result هي مثيل لـ PermafrostPhpCodeSearchResultsSearchResult مع الخصائص التالية:
node - العنصر المحدد الذي تم العثور عليهnode->name(): stringlocation - الموقع في الملف الذي تم العثور على العنصرlocation->startLine(): intlocation->endLine(): intsnippet - مقتطف من خطوط التعليمات البرمجية من الملف مع سطر النتيجة في الوسطsnippet->toString(): stringfile() (method) - يوفر الوصول إلى الملف الذي تم تفتيشه للبحث من خلال الكود في سلسلة أو ملف ، استخدم فئة Searcher :
use Permafrost PhpCodeSearch Searcher ;
$ searcher = new Searcher (); للبحث في ملف ، استخدم طريقة search ، وطريقة searchCode للبحث في سلسلة من التعليمات البرمجية.
$ searcher
-> functions ([ ' strtolower ' , ' strtoupper ' ])
-> search ( ' ./file1.php ' );
$ searcher
-> variables ([ ' /^one[A-Z]$/ ' ])
-> searchCode ( ' <?php $oneA = "1a"; ' ); عند البحث باستخدام أي من الأساليب المتاحة ، يمكن استخدام التعبيرات العادية عن طريق المحيط بالاسم مع Slashes / ، أي /testd+/ .
للبحث عن المتغيرات حسب الاسم ، استخدم طريقة 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 ;
} للبحث عن مكالمات الوظائف أو التعريفات ، استخدم طريقة functions .
// search for references AND definitions for 'strtolower' and/or 'myfunc'
$ searcher
-> functions ([ ' strtolower ' , ' myfunc ' ])
-> search ( ' file1.php ' ); للبحث عن استدعاء طريقة بالاسم ، استخدم طريقة methods .
تحتوي العقد المكالمات على خاصية args التي يمكن حلها لاسترداد وسيطات استدعاء الطريقة.
$ 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 ;
}
} للبحث عن طريقة ثابتة أو مكالمات خاصية ، استخدم الطريقة static .
مصطلحات البحث صالحة هي إما اسم فئة مثل Cache ، أو اسم الفصل واسم طريقة مثل Cache::remember .
$ searcher
-> static ([ ' Ray ' , ' Cache::has ' , ' Request::$myProperty ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); للبحث عن تعريف فئة أو فئة تم إنشاؤها بواسطة الكلمة الرئيسية new ، استخدم طريقة classes .
$ searcher
-> classes ([ ' MyController ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); للبحث عن تعيين متغير حسب الاسم المتغير ، استخدم طريقة assignments . ملاحظة: يجب حذف $ .
$ searcher
-> assignments ([ ' myVar ' ])
-> search ( ' ./app/Http/Controllers/MyController.php ' ); لإرجاع نتائج البحث دون قصاصات التعليمات البرمجية المرتبطة بها ، استخدم طريقة withoutSnippets :
$ searcher
-> withoutSnippets ()
-> functions ([ ' strtolower ' ])
-> search ( ' file1.php ' );./vendor/bin/phpunitيرجى الاطلاع على Changelog لمزيد من المعلومات حول ما تغير مؤخرًا.
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
يرجى مراجعة سياسة الأمان الخاصة بنا حول كيفية الإبلاغ عن نقاط الضعف الأمنية.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.