Rumah > pembangunan bahagian belakang > tutorial php > Menganalisis projek PHP dengan Jenkins

Menganalisis projek PHP dengan Jenkins

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-19 11:41:12
asal
274 orang telah melayarinya

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan