Rumah >pembangunan bahagian belakang >PHP7 >Perangkap yang saya temui semasa menggunakan php7 pada tahun-tahun tersebut

Perangkap yang saya temui semasa menggunakan php7 pada tahun-tahun tersebut

醉折花枝作酒筹
醉折花枝作酒筹ke hadapan
2021-08-05 09:36:431755semak imbas

Walaupun PHP telah menjadi "bahasa pengaturcaraan terbaik di dunia", beberapa cirinya masih menyebabkan kami beberapa masalah yang tidak diketahui semasa proses pembangunan. Di bawah adalah beberapa perangkap yang saya temui semasa proses pembangunan saya harap semua penonton dapat belajar daripadanya dan mengelakkan perangkap tersebut.

1. Jangan gunakan fungsi mysql_

Harinya akhirnya tiba, anda bukan sahaja "tidak sepatutnya" menggunakan fungsi mysql_. PHP 7 telah mengeluarkan kesemuanya daripada teras, yang bermaksud anda perlu berhijrah ke fungsi mysqli_ yang lebih baik, atau pelaksanaan PDO yang lebih fleksibel.

2 Jangan tulis kod sampah

Yang ini mungkin mudah difahami, tetapi ia akan menjadi semakin penting kerana peningkatan kelajuan PHP 7 mungkin menyembunyikan anda. Beberapa soalan. Jangan hanya berpuas hati dengan kelajuan tapak anda kerana berhijrah ke PHP 7 menjadikannya lebih pantas.

Sebagai pembangun, anda harus sentiasa memastikan untuk memuatkan skrip atas permintaan, menyambungkannya apabila boleh, menulis pertanyaan pangkalan data yang cekap, menggunakan caching apabila boleh dan banyak lagi.

3 Jangan gunakan teg penutup PHP di hujung fail

Anda boleh lihat, apabila fail berakhir dengan kod PHP, kebanyakan WordPress kod teras berakhir dengan Tag PHP telah dialih keluar. Malah, Rangka Kerja Zend menyahdayakannya secara khusus. PHP tidak memerlukan teg penutup pada penghujung fail dan kami boleh memastikan bahawa tiada aksara ruang putih ditambahkan pada penghujung dengan mengalih keluarnya.

4. Jangan buat rujukan lewat yang tidak perlu

Saya secara peribadi tidak suka rujukan lewat. Saya tahu bahawa kadangkala ia berguna, tetapi pada masa lain ia menjadikan kod sukar untuk difahami dan keputusan lebih sukar untuk diramalkan.

Dikatakan bahawa sesetengah orang berpendapat ia menjadikan kod berjalan lebih pantas, tetapi menurut beberapa pengaturcara senior PHP, ini tidak benar.

Contoh sebab petik adalah buruk ialah PHP mempunyai shuffle() dan sort() terbina dalam. Mereka mengubah suai tatasusunan asal dan bukannya mengembalikan tatasusunan yang diproses, yang tidak logik.

5. Jalankan pertanyaan dalam gelung

Melaksanakan pertanyaan dalam gelung adalah sangat membazir. Ia memberi tekanan yang tidak perlu pada sistem anda dan mungkin dapat mencapai hasil yang sama dengan lebih cepat di luar gelung. Apabila saya menghadapi situasi di mana saya memerlukan sesuatu seperti ini, saya biasanya menyelesaikan masalah dengan dua pertanyaan berasingan yang saya gunakan untuk membina tatasusunan data. Saya kemudian akan mengulangi tatasusunan dan tidak perlu melakukan pertanyaan dalam proses itu.

Memandangkan WordPress digunakan di sini, ia mungkin mempunyai beberapa pengecualian. Walaupun get_post_meta() akan mendapat banyak data daripada pangkalan data, anda boleh menggunakannya dalam satu gelung jika anda membuat gelung melalui metadata catatan blog tertentu. Ini kerana apabila anda mula-mula memanggilnya, WordPress sebenarnya mengambil semua metadata dan menyimpannya. Panggilan seterusnya menggunakan data cache ini tanpa membuat panggilan pangkalan data.

Cara terbaik untuk memahami perkara ini ialah membaca dokumentasi fungsi dan menggunakan alat seperti Query Monitor.

6 Jangan gunakan *

Sudah tentu, ini lebih seperti masalah MySQL, tetapi kami biasa menulis kod SQL dalam PHP, jadi ia adalah sama. Walau apa pun, jangan gunakan kad bebas dalam pertanyaan SQL jika anda boleh mengelakkannya, terutamanya jika pangkalan data mempunyai banyak lajur.

Anda harus menyatakan dengan jelas baris mana yang diperlukan dan hanya mendapatkannya. Ini membantu mengurangkan sumber yang digunakan, melindungi data dan membuat perkara sejelas mungkin.

Dengan SQL, anda perlu mengetahui semua fungsi yang ada dan menguji kelajuannya jika boleh. Apabila mengira min, jumlah, atau pengiraan berangka yang serupa, gunakan fungsi SQL dan bukannya fungsi PHP. Jika anda tidak pasti tentang kelajuan pertanyaan tertentu, uji dan cuba beberapa kompilasi lain - kemudian gunakan yang terbaik.

7. Jangan percaya input pengguna

Adalah tidak bijak untuk mempercayai input pengguna. Sentiasa sahkan, tapis, larikan diri, semak dan tinggalkan jalan keluar. Terdapat tiga masalah dengan data pengguna: kami pembangun tidak mempertimbangkan setiap kemungkinan, ia selalunya tidak betul dan ia boleh dikompromi dengan sengaja.

Sistem yang difikirkan dengan baik melindungi daripada ancaman ini. Pastikan anda menyemak nilai yang sesuai menggunakan fungsi terbina dalam seperti filter_var(), dan escape (atau precompile) apabila berurusan dengan pangkalan data.

WordPress mempunyai beberapa fungsi untuk menyelesaikan masalah. Lihat artikel Mengesahkan, melarikan diri dan menapis data pengguna untuk mendapatkan butiran.

8 Jangan cuba menjadi pintar

Matlamat anda hendaklah menulis kod elegan yang menyatakan niat anda dengan lebih jelas. Anda mungkin boleh mengoptimumkan 0.01 saat daripada setiap halaman dengan memendekkan semuanya kepada pembolehubah satu perkataan, menggunakan berbilang lapisan logik ternary dan cara lain. Tetapi ini hanya akan menimbulkan masalah besar untuk anda dan orang di sekeliling anda.

Namakan pembolehubah dengan bijak, dokumentasikan kod anda dan utamakan kejelasan daripada ringkas. Lebih baik menggunakan kod berorientasikan objek standard, iaitu lebih kurang dokumen itu sendiri, tanpa memerlukan sekumpulan nilai sebaris.

9 Jangan cipta semula roda

PHP telah wujud sejak sekian lama dan tapak web telah wujud lebih lama lagi. Kemungkinannya, apa sahaja yang anda perlukan untuk membina, seseorang telah membinanya sebelum ini. Jangan takut untuk meminta sokongan daripada orang lain, Github adalah rakan anda, begitu juga Komposer, dan begitu juga Packagist.

Dari alatan pengelogan kepada alat pembetulan warna, daripada penganalisis prestasi kepada rangka kerja ujian unit, daripada Mailchimp API kepada Twitter Bootstrap, semuanya boleh didapati dengan menekan kekunci (atau menaip arahan), gunakannya!

10 Jangan abaikan bahasa lain

Jika anda seorang pengaturcara PHP, apabila anda boleh memahami HTML, CSS, JavaScript dan MySQL dengan lebih baik. Tiba masanya untuk belajar JavaScript sekali lagi. JavaScript bukan jQuery, dan anda harus mempelajari JavaScript dengan betul untuk menggunakannya dengan lebih cekap.

Terdapat juga PHP berorientasikan objek, yang menjimatkan masa dan menjadi lebih baik apabila saiz kod lebih besar. Untuk bahasa seperti C# dan Java, ia juga lebih mudah difahami selepas anda memahami OOP.

Perluaskan pengetahuan anda dengan mempelajari tentang pengurus pakej, bina skrip, CoffeeScript, LESS, SASS, YAML, enjin skrip dan alatan berkuasa lain. Saya sangat mengesyorkan anda untuk melihat rangka kerja lain, terutamanya Laravel.

Bagaimana pula dengan mempelajari pembangunan aplikasi Ruby, RoR, Android, iPhone dan Windows Phone semasa anda menggunakannya untuk menyelesaikan sesuatu dengan cemerlang? Anda mungkin fikir ini tidak berguna kerana mereka berada di luar zon selesa anda dan apa yang diperlukan oleh pekerjaan itu, tetapi itulah hakikatnya. Setiap bahasa mempunyai beberapa perkara praktikal untuk dipelajari, serta perkara baharu yang tidak pernah anda temui sebelum ini.

Atas ialah kandungan terperinci Perangkap yang saya temui semasa menggunakan php7 pada tahun-tahun tersebut. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam