Rumah pembangunan bahagian belakang tutorial php Menganalisis projek PHP dengan Jenkins

Menganalisis projek PHP dengan Jenkins

Feb 19, 2025 am 11:41 AM

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" />
Salin selepas log masuk

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.

Analyzing a PHP Project with Jenkins

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.

Analyzing a PHP Project with Jenkins

Untuk mengetahui masalahnya, anda boleh mengklik "Amaran PMD" dalam menu di sebelah kiri untuk pergi ke binaan terkini. Jika anda ingin melihat binaan yang berbeza, klik pada satu membina dan pilih amaran PMD. Anda akan tiba di halaman yang serupa dengan halaman PHP CodesNiffer.

Analyzing a PHP Project with Jenkins 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. Analyzing a PHP Project with Jenkins

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.

Dalam menu di sebelah kiri, kita boleh mengklik pada "Kod Duplikat" untuk mendapatkan gambaran keseluruhan masalah yang dijumpai. Seperti dahulu, klik Bina untuk maklumat lanjut mengenai binaan itu. Anda akan melihat bahawa gambaran keseluruhan kelihatan sama dengan halaman sebelumnya. Mari klik pada tab "Butiran" untuk maklumat lanjut.

Analyzing a PHP Project with Jenkins

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.

Analyzing a PHP Project with Jenkins

Saya cadangkan anda membaca dokumentasi rasmi alat ini untuk memahami sepenuhnya kedua -dua carta ini. Untuk maklumat lanjut mengenai piramid, anda boleh melihat pautan ini. Untuk maklumat lanjut mengenai carta ketidakstabilan abstrak, anda boleh melihat pautan ini.

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.

Analyzing a PHP Project with Jenkins Penjelasan halaman ini juga agak besar dan kompleks, jadi saya mengarahkan anda ke dokumentasi rasmi di mana semuanya dijelaskan.

phploc

Analyzing a PHP Project with Jenkins

phpUnit

Analyzing a PHP Project with Jenkins

Jumlah statistik yang besar di Jenkins dihasilkan oleh PHPUNIT. Dalam gambaran keseluruhan sahaja, anda akan melihat 3 carta yang dihasilkan oleh data phpunit.

Carta pertama menunjukkan berapa banyak kod yang dilindungi oleh ujian. Dalam kes ini, ia adalah 71.1%. Untuk menjana liputan ini, latar belakang menggunakan Xdebug.

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.

Analyzing a PHP Project with Jenkins

Anda boleh mengklik direktori untuk mendapatkan wawasan mengenai kod sumber anda. Jika anda tiba di fail, anda boleh membukanya dan melihat garis demi baris berapa banyak kandungan ditimpa. Gunakan warna, yang menunjukkan bahagian mana yang sedang diuji dan bahagian mana yang tidak diuji. Melayang di atas garis akan menunjukkan berapa kali ujian unit anda telah memanggil garis.

Analyzing a PHP Project with Jenkins 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. Analyzing a PHP Project with Jenkins

Halaman -halaman lain Analyzing a PHP Project with Jenkins

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.

Analyzing a PHP Project with Jenkins

Kesimpulan

Dalam artikel ini, kami dengan teliti mengkaji jenis petunjuk yang diperoleh dari semua alat. Semua maklumat yang anda ambil juga boleh diambil pada baris arahan. Kelebihan Jenkins ialah anda boleh membuat carta dan gambaran yang lebih baik mewakili masalah.

Pada bahagian terakhir, kami akan menggantikan beberapa alat dan menambah beberapa metrik tambahan. Kami juga akan melihat cara menganalisis kod CSS, JavaScript, dan HTML kami.

(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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

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,

Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Apr 06, 2025 am 12:02 AM

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.

Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Apr 03, 2025 am 12:04 AM

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.

Apakah penghitungan (enums) dalam Php 8.1? Apakah penghitungan (enums) dalam Php 8.1? Apr 03, 2025 am 12:05 AM

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? Bagaimana cara debug mod CLI dalam phpstorm? Apr 01, 2025 pm 02:57 PM

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

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

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 ...

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

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.

See all articles