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!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Topik panas

Tutorial Java
1672
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Apr 17, 2025 am 12:06 AM

Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP dalam Tindakan: Contoh dan aplikasi dunia nyata PHP dalam Tindakan: Contoh dan aplikasi dunia nyata Apr 14, 2025 am 12:19 AM

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Apr 17, 2025 am 12:25 AM

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

Relevannya PHP: Adakah ia masih hidup? Relevannya PHP: Adakah ia masih hidup? Apr 14, 2025 am 12:12 AM

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Apr 15, 2025 am 12:15 AM

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.

See all articles