Menganalisis projek PHP dengan Jenkins
Jenkins: Alat Integrasi dan Penghantaran Berterusan untuk Projek PHP
Jenkins, pelayan automatik sumber terbuka yang memainkan peranan utama dalam integrasi berterusan dan penghantaran berterusan projek PHP, dapat mengesan dan menyelesaikan pepijat dalam masa nyata dan terus memberi maklum balas kod peningkatan kualiti kod.
Kuasa integrasi Jenkins dengan alat PHP
Jenkins serasi dengan pelbagai alat projek PHP, termasuk CodesNiffer PHP, PHP MD, PHP CPD, PHP bergantung, PHPLOC, PHPUNIT, dan PHPDOX, dan setiap alat menyediakan pandangan analisis kod unik dan metrik. Kelebihan Jenkins ialah ia dapat menjana carta dan gambaran keseluruhan, membentangkan masalah dengan lebih cekap daripada pengambilan baris arahan, menjadikannya lebih mudah untuk mengenal pasti dan menyelesaikan masalah dalam kod anda.
Di samping alat yang telah disediakan, Jenkins mengumpul maklumat tambahan seperti gambaran keseluruhan CodesNiffer PHP, PHP MD, dan pelanggaran CPD PHP, serta gambaran keseluruhan "perubahan" yang menunjukkan semua yang dilakukan antara setiap binaan.
Tafsiran Jenkins Hasil: Pandangan Projek dan Membina Lihat
Hasil Jenkins datang dari alat yang berbeza dan akan diletakkan di lokasi yang berbeza di Jenkins GUI. Kami akan melayari dua halaman yang berbeza. Pertama ialah halaman paparan projek, dengan nama projek yang dipaparkan di bahagian atas. Pada halaman ini, anda boleh mendapatkan gambaran keseluruhan projek anda dan anda boleh membandingkan pelbagai binaan. Anda boleh mengakses halaman ini dengan mengklik item dari halaman Gambaran Keseluruhan lalai. Sebagai tambahan kepada halaman paparan projek, kami juga mempunyai halaman Build View. Anda boleh menavigasi ke halaman ini dengan mengklik nombor binaan di bar sisi. Di sini anda boleh melihat pelbagai butiran mengenai binaan ini.
Artikel ini akan memperkenalkan setiap alat dan Laporan Laporan Langkah demi Langkah. Akhirnya, kami juga akan melihat beberapa butiran tambahan Jenkins telah dikumpulkan untuk kami. Oleh kerana kami membina projek yang sama beberapa kali, garis lurus akan dipaparkan dalam carta kami. Dalam projek sebenar, carta akan berubah -ubah.
php codesniffer
CodesNiffer adalah alat untuk memeriksa sama ada kod anda mematuhi set peraturan biasa atau set peraturan tersuai anda sendiri. Dalam contoh ini, kami mengkonfigurasi alat yang ingin kami uji terhadap PSR2. Kami menentukan ini dalam fail Build.xml.
<arg value="--standard=PSR2" />
Pada halaman Gambaran Keseluruhan, anda akan melihat carta yang dipanggil "Trend Checkstyle". Carta ini mewakili bilangan isu PSR2 dalam setiap binaan. Dalam kod kami, kami hampir patuh sepenuhnya, jadi carta kami hanya menunjukkan satu masalah.
Terdapat juga carta di bawah halaman yang menggabungkan data dari 3 alat. Codesniffer adalah salah satu daripada mereka.
Untuk melihat di mana masalahnya, anda boleh mengklik pada "Peringatan Semak" di menu kiri binaan terkini, atau klik pada binaan tertentu dan kemudian klik pada "peringatan checkstyle" untuk binaan khusus itu.
Pada halaman ini, anda dapat melihat keterangan masalah dengan jelas. Ambil perhatian bahawa anda boleh menggunakan pelbagai penapis. Di bar atas, anda dapat melihat dengan jelas berapa banyak isu yang baru dan berapa banyak yang telah ditetapkan. Anda boleh mengklik pada nombor untuk melihat perubahan dengan jelas. Dalam ringkasan, anda dapat melihat soalan dengan cepat yang diklasifikasikan oleh keutamaan.
php md
MD bermaksud pengesan kekacauan. Alat ini cuba menunjukkan beberapa isu dalam kod. Ini boleh menjadi bug yang berpotensi, kod yang tidak digunakan, atau pendekatan rumit. Untuk senarai lengkap cek yang ada, anda boleh melihat halaman ini. Sila ambil perhatian bahawa kami tidak memeriksa setiap peraturan. Anda boleh menentukan peraturan untuk memeriksa fail phpmd.xml.
Seperti PHP CodesNiffer, kita melihat carta pada halaman paparan projek yang menunjukkan bagaimana pengesanan kekeliruan kami berlangsung dari masa ke masa.
Di bahagian atas, anda dapat melihat lagi berapa banyak isu yang baru dan berapa banyak isu yang ditetapkan. Selain itu, anda dapat melihat keutamaan setiap soalan.
Di halaman butiran, anda boleh mendapatkan lebih banyak maklumat mengenai tempat untuk mencari masalah. Terdapat banyak tab yang boleh digunakan untuk memberikan maklumat yang sama dengan cara yang berbeza. Sebagai contoh, anda boleh mengklik pada "Jenis" untuk mengetahui lebih lanjut mengenai setiap jenis.
seperti yang anda lihat, "UnusedFormalParameter" adalah masalah terbesar kami. Dengan mengklik padanya, kita akan melihat lagi fail mana yang mempunyai parameter yang tidak digunakan.
php cpd
CPD bermaksud pengesan tampal salin. Alat ini menganalisis semua kod dan mencari beberapa baris pendua. Sekiranya anda mempunyai banyak baris pendua, ini mungkin bermakna anda perlu menulis semula bahagian tertentu supaya logik dikongsi antara pelbagai kelas. Pada halaman paparan projek, kami akan melihat kemajuan keseluruhan dalam semua membina lagi.
Seperti yang anda lihat, terdapat 58 baris dalam kelas CompanyFilter yang juga terletak di kelas UserFilter dan TimeCategoryFilter. Berdasarkan data ini, anda boleh memutuskan bahawa anda memerlukan beberapa jenis perkhidmatan asas atau pelaksanaan yang mengendalikan kebanyakan semua 3 kelas. Penyelesaiannya bergantung pada keadaan anda, CPD PHP hanya memberitahu anda di mana ia mendapati masalahnya.
php bergantung
PHP bergantung mungkin metrik yang paling sukar difahami. PHP bergantung melakukan analisis kod statik pada asas kod anda. Ia menghasilkan 2 imej dan halaman gambaran keseluruhan. Anda mungkin mendapati bahawa di bahagian atas halaman paparan projek, terdapat beberapa HTML yang harus memaparkan imej.
Hakikat bahawa imej tidak dipaparkan bermakna anda perlu menukar suis dalam konfigurasi Jenkins. Pergi ke "Mengurus Jenkins" dan pergi ke "Konfigurasi Keselamatan Global". Terdapat kotak pemilihan yang boleh anda gunakan untuk mengkonfigurasi "Formatter Markup". Tetapkannya ke "HTML Selamat" dan simpan tetapan anda. Jika anda kini kembali ke halaman Paparan Projek, anda akan melihat bahawa HTML telah ditukar kepada dua imej.
anda boleh mendapatkan lebih banyak maklumat dengan mengklik pada binaan khusus dan memilih "JDepend" dalam menu di sebelah kiri. Anda akan mendapat gambaran keseluruhan berikut.
Penjelasan halaman ini juga agak besar dan kompleks, jadi saya mengarahkan anda ke dokumentasi rasmi di mana semuanya dijelaskan.
phploc
Carta kedua menunjukkan tahap omong kosong anda. Crap bermaksud perubahan analisis risiko dan ramalan. Crap dikira dengan memeriksa kerumitan kod dan jumlah ujian yang dilaksanakan pada kod. Jika anda melayari peraturan PHP MD, anda mungkin menyedari bahawa PHP MD juga dapat memeriksa kerumitan kod, tetapi tidak menganggap ujian unit. Sila baca di sini untuk mengetahui bagaimana PHP MD mengira kerumitan anda.
Carta akhir menunjukkan berapa banyak ujian yang berjaya dan berapa banyak yang gagal. Dalam kes ini, mereka semua berjaya.
Di menu sidebar kiri kami, kami mempunyai dua projek yang dihasilkan oleh PHPUNIT. Yang pertama adalah omong kosong. Pada halaman ini, anda dapat melihat gambaran keseluruhan beberapa carta yang menunjukkan betapa tinggi tahap omong kosong semasa anda. Di bahagian bawah, anda benar -benar melihat kaedah mana yang ditandakan sebagai omong kosong. Anda akan melihat lajur yang menunjukkan liputan dan kerumitan.
item menu kedua ialah "Laporan HTML Clover". Dalam halaman ini, anda boleh menggariskan dengan direktori berapa banyak kandungan yang ditimpa oleh ujian unit anda.
Dalam contoh ini, kita dapat melihat dengan jelas bahawa bahagian pernyataan IF tidak dipanggil oleh ujian unit. Ini betul dalam kes ini. Kaedah ini hanya melakukan permintaan, bukan permintaan pos. Jika kami melaksanakan permintaan pos dalam ujian unit, pernyataan ini jika akan ditandakan hijau. Dengan cara ini, anda boleh dengan mudah menemui mana -mana bahagian yang hilang dari ujian unit anda.
phpdox
Terdapat banyak alat untuk menjana dokumentasi berdasarkan kod dan komen anda. PHPDOX adalah alat lain yang boleh melaksanakan tugas ini untuk anda. Dalam menu di sebelah kiri, anda boleh mengklik pada "Dokumentasi API" untuk pergi ke dokumen anda. Manfaat phpDox adalah bahawa ia juga termasuk hasil semua alat lain.
Dengan navigasi di bahagian atas, anda boleh mendapatkan gambaran keseluruhan semua kelas, tetapi anda juga boleh menggali satu kelas dan mendapatkan gambaran keseluruhan semua kaedah dan penerangan. Anda juga boleh melihat sejarah fail dan kod sumber.
Halaman -halaman lain
Di samping alat yang kami sediakan dalam artikel sebelumnya, Jenkins akan mengumpulkan maklumat tambahan untuk anda. Plugin pelanggaran yang kami pasang mencipta halaman tambahan yang memaparkan gambaran keseluruhan CodesNiffer PHP, PHP MD, dan PHP CPD. Anda juga boleh mengklik pada binaan khusus dan mencari item menu yang dinamakan "Perubahan" dalam menu di sebelah kiri. Jika anda pergi ke halaman ini, anda akan melihat gambaran keseluruhan semua komitmen yang dibuat antara binaan sebelumnya dan binaan ini. Sekiranya tiada perubahan dibuat, halaman akan kosong. Kesimpulan
(bahagian FAQ ditinggalkan di sini kerana kandungan bahagian FAQ sangat berulang -ulang dengan kandungan utama artikel dan lebih lama, untuk mengelakkan pertindihan, ia akan ditinggalkan di sini.)
Atas ialah kandungan terperinci Menganalisis projek PHP dengan Jenkins. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Fungsi penghitungan dalam Php8.1 meningkatkan kejelasan dan jenis keselamatan kod dengan menentukan pemalar yang dinamakan. 1) Penghitungan boleh menjadi bilangan bulat, rentetan atau objek, meningkatkan kebolehbacaan kod dan keselamatan jenis. 2) Penghitungan adalah berdasarkan kelas dan menyokong ciri-ciri berorientasikan objek seperti traversal dan refleksi. 3) Penghitungan boleh digunakan untuk perbandingan dan tugasan untuk memastikan keselamatan jenis. 4) Penghitungan menyokong penambahan kaedah untuk melaksanakan logik kompleks. 5) Pemeriksaan jenis dan pengendalian ralat yang ketat boleh mengelakkan kesilapan biasa. 6) Penghitungan mengurangkan nilai sihir dan meningkatkan keupayaan, tetapi memberi perhatian kepada pengoptimuman prestasi.

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.
