Deskripsi Proyek# PHP ke PYTHON Skrip python untuk mengubah kode php sederhana menjadi python, ## penggunaan penggunaan. php2python. py [-h] -s SCRIPT [-o] Konverter sintaks PHP ke PYTHON argumen opsional ``` ``` Konversi. test_scripts/Keterangan. php. File keluaran akan menjadi. test_scripts/Keterangan. py ``` ``` ``` Ini dimaksudkan sebagai bantuan porting saja. Anda masih perlu meninjau PHP yang dihasilkan dan melakukan penyesuaian. Tapi itu menangani banyak pekerjaan kasar dan kasus umum py2php adalah salinan pyjs yang banyak dimodifikasi. py dari proyek piyama. pyjs. py ditulis untuk menerjemahkan python ke javascript. py2php mengubah semantik keluaran dari JS ke php Berikut adalah program python sederhana untuk menghasilkan urutan angka fibonacci def gen_fib(count): i = 1 if count == 0: fib = [] elif count == 1: fib = [1] elif count == 2: fib = [1,1] elif count > 2: fib = [1,1] while i < (count - 1): fib.append(fib[i] + fib[i-1]) i += 1 return fib print gen_fib(10) dan inilah PHP yang dibuat secara otomatis <?php require_once('py2phplib.php'); function gen_fib($count) { $i = 1; if (($count == 0)) { $fib = array(); } else if (($count == 1)) { $fib = array(1); } else if (($count == 2)) { $fib = array(1, 1); } else if (($count > 2)) { $fib = array(1, 1); while (($i < ($count - 1))) { $fib[] = ($fib[$i] + $fib[($i - 1)]); $i += 1; } } return $fib; } pyjslib_printFunc(gen_fib(10));_ Keduanya menghasilkan output yang sama persis
File py2phplib. php berisi beberapa fungsi PHP yang meniru kata kunci python seperti print, range, dll. py2php secara otomatis mengganti nama kata kunci ini untuk memanggil fungsi yang ditiru Lihat di direktori tes untuk lebih banyak contoh translate_python_to_phptranslate_python_to_php adalah skrip pembungkus untuk py2php. Jalankan di direktori mana pun tanpa argumen dan itu akan mencoba menerjemahkan semua. file py ke dalam. file php Jalankan dengan satu atau lebih argumen, dan itu akan mencoba menerjemahkan file dalam daftar argumen Penggabungan StringPython menggunakan + untuk penggabungan string dan PHP menggunakan dot (. ) Karena variabel python diketik secara dinamis, py2php tidak mungkin mengetahui apakah variabel yang diberikan mewakili string atau angka py2php mencoba menangani ini dengan
Ini berarti bahwa jika nama variabel string Anda tidak mengandung "str" atau "buf" maka Anda perlu mengubah secara manual semua kejadian terkait "+" menjadi ". " Konvensi PemindahanSaat mem-porting kode python, saya secara manual membuat subdirektori bernama _autotranslated, tempat saya memindahkan semua yang asli. file py. Saya kemudian menjalankan translate_python_to_php yang membuat semua terjemahan. file php. Saya kemudian menyalin (tidak bergerak. ) file yang dihasilkan tersebut kembali ke direktori induk untuk ditinjau dan disesuaikan, untuk menyelesaikan port Dengan cara ini, direktori _autotranslated hanya berisi yang asli. py file dan autogenerated. file php. Ini akan membuat segalanya lebih mudah di masa depan ketika proyek python upstream merilis versi baru. Maka kami hanya akan menyalin yang baru. py ke direktori tmp baru, jalankan kembali autotranslater, dan kemudian kita memiliki PHP PHP diff yang bagus yang dapat kita gunakan sebagai bantuan porting. Setelah port selesai, file direktori tmp harus menggantikan konten direktori _autotranslated |