"penghuraikan php" digunakan untuk menjana kod templat, atau menggunakan pepohon sintaks abstrak yang dijana untuk analisis statik "penghuraikan php" ialah alat penghuraian pokok sintaks PHP yang dibangunkan oleh nikic, sambil mengambil kira yang mudah antara muka Ia mempunyai banyak kelebihan seperti penggunaan praktikal, pengenalan struktur, dan rantai alat yang lengkap.
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 8.1, komputer Dell G3
PHP Parser ialah alat penghuraian pokok sintaks abstrak (AST) PHP yang dibangunkan oleh nikic. PHP Parser juga mengambil kira banyak kelebihan seperti antara muka yang mudah digunakan, struktur ringkas dan rangkaian alat yang lengkap. Dalam kejuruteraan, PHP Paser biasanya digunakan untuk menjana kod templat, atau pokok sintaks abstrak yang dihasilkan olehnya digunakan untuk analisis statik.
Penghurai PHP ialah projek untuk penghuraian kod sumber Tidak syak lagi, ia ditulis dalam PHP tulen kemudahan yang hebat.
PHP ialah bahasa dinamik dan prestasinya tidak tinggi, jadi menggunakan PHP Parser untuk menganalisis kod PHP mempunyai prestasi yang lemah. Nasib baik, senario analisis kod umumnya tidak mempunyai keperluan prestasi tinggi.
Fungsi token_get_all PHP sendiri menggunakan penganalisis sintaks enjin Zend untuk membahagikan kod sumber kepada satu siri token Walaupun token ini boleh digunakan untuk menyelesaikan banyak tugasan analisis dan pemprosesan kod, kerana struktur token juga primitif, sukar untuk dilalui Ia sangat menyusahkan untuk dikendalikan. Juga berdasarkan hasil analisis token_get_all, alat penyeragaman kod terkenal PHP CodeSniffer menjadikan analisis kod lebih mudah dengan melakukan banyak pemprosesan pada token dan menyediakan satu siri antara muka carian dan traversal.
Penghurai PHP boleh menjana struktur Pokok Sintaks Abstrak (AST, atau Pokok Sintaks Abstrak) yang sepadan dengan kod PHP, sangat memudahkan traversal kod sumber dan operasi lain.
Contoh hasil penghuraian PHP parser
Untuk sekeping kod PHP berikut:
<?php echo 'Hi', 'World';
Struktur pokok yang dijana selepas penghuraian adalah sebagai berikut:
array( 0: Stmt_Echo( exprs: array( 0: Scalar_String( value: Hi ) 1: Scalar_String( value: World ) ) ) )
Struktur pepohon sintaks yang dijana oleh penghurai PHP
Untuk memudahkan lagi operasi, PHP Parser mengumpulkan nod bahasa (Nod):
PhpParserNodeStmt ialah nod Pernyataan termasuk struktur bahasa yang tidak mempunyai nilai pulangan dan tidak muncul dalam ungkapan, seperti definisi kelas
PhpParserNodeExpr ialah nod ungkapan, termasuk nilai pulangan dan struktur bahasa; yang boleh muncul dalam struktur bahasa formula, seperti $var (PhpParserNodeExprVariable) dan func() (PhpParserNodeExprFuncCall), dll.; , 0 (PhpParserNodeScalarLNumber) dan pemalar ajaib seperti __FILE__ (PhpParserNodeScalarMagicConstFile) dsb. Ia juga dianggap sebagai ungkapan, dan semuanya mewarisi daripada nod ungkapan;
Nod lain, seperti: nod nama (PhpParserNodeName) dan nod parameter (PhpParserNodeArg)
Sebarang nama kelas nod dan kata kunci PHP Jika terdapat konflik, nama kelas nod semuanya akan berakhir dengan _, seperti PhpParserNodeScalarString_.
Apakah yang boleh PHP Parser lakukan?Selain menghuraikan kod sumber kepada pokok sintaks abstrak, ia juga disertakan dengan ciri berikut:
Penjanaan kod, yang boleh menukar pepohon sintaks abstrak kepada kod PHP
Penukaran antara pepohon sintaks abstrak dan XML
Eksport struktur pepohon sintaks untuk tontonan mudah
Kelas asas untuk melintasi dan mengubah suai struktur pepohon sintaks (penyusuri nod dan pelawat nod)
Sokong pelawat nod ruang nama
Menggunakan traversal pepohon sintaks, kita boleh menulis atur cara untuk menganalisis masalah kod. Digabungkan dengan ciri seperti penjanaan kod dan pengubahsuaian traversal struktur pokok sintaks, kami boleh mengautomasikan pemfaktoran semula kod dan banyak lagi.
Pembelajaran yang disyorkan: "
Tutorial Video PHPAtas ialah kandungan terperinci Cara menggunakan parser php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!