Gambaran Keseluruhan Alat Jaminan Kualiti PHP: Panduan Praktikal untuk Meningkatkan Kualiti Kod PHP
Artikel ini menyoroti alat jaminan kualiti PHP utama seperti phpunit, timun, atoum, selenium, senja, kahlan dan php, masing -masing menyediakan keupayaan peningkatan kualiti ujian dan kod yang unik. Di samping itu, perkhidmatan integrasi berterusan (CI) seperti PHPCI, Travisci, Semaphoreci, dan Jenkins adalah kritikal untuk projek pasukan kerana mereka secara automatik menyemak kod sebelum ia digabungkan ke repositori projek rasmi.
Semasa membina budaya ujian adalah mencabar, ia adalah penting untuk kualiti kod. Menggunakan alat di atas boleh membantu pemaju memulakan ujian dan memastikan kualiti amalan pengekodan PHP mereka.
(artikel popular ini dikemas kini pada 30 Jun 2017 untuk memasukkan teknologi dan alat terkini.)
Untuk menyampaikan kod berkualiti tinggi, kita mesti mempertimbangkan ujian semasa pengekodan (jika tidak pembangunan yang didorong oleh ujian (TDD). Walau bagaimanapun, memandangkan pelbagai alat ujian PHP, sukar untuk membuat pilihan! Meneroka PHP adalah pengembaraan yang menyeronokkan, tetapi sukar untuk membentuk kotak alat yang tidak akan terlalu berat!
Artikel ini akan memberi tumpuan kepada alat ujian yang paling popular dan telah dikemas kini untuk mencerminkan status semasa alat jaminan kualiti pada tahun 2017.
Kod yang belum diuji adalah kod yang dipersoalkan.
PHPUnit adalah rangka kerja ujian pilihan untuk PHP. Ia dicipta pada tahun 2004 oleh Sebastian Bergmann dan kini mempunyai versi 6 dan memerlukan Php 7.
Kami mempunyai banyak tutorial mengenainya tidak lama lagi.
Cucumber
Timun adalah rangka kerja untuk membuat ujian penerimaan berdasarkan spesifikasi. Ia terkenal dengan teks yang dihasilkan secara deskriptif yang boleh dibaca seperti bahasa Inggeris biasa. Pelaksanaan PHP rasmi Timun adalah Behat.
Kami mempunyai tutorial untuk memulakan SitePoint di sini. Contoh -contoh berikut yang dikutip dari dokumentasi menggambarkan dengan baik bagaimana ekspresi yang dikehendaki ini dinyatakan.
atoum
<code>Feature: Listing command In order to change the structure of the folder I am currently in As a UNIX user I need to be able see the currently available files and folders there Scenario: Listing two files in a directory Given I am in a directory "test" And I have a file named "foo" And I have a file named "bar" When I run "ls" Then I should get: """ bar foo """</code>
Atoum adalah satu lagi rangka kerja ujian unit untuk PHP. Ia adalah pakej mandiri yang boleh anda pasang melalui github, komposer, atau phar executables.
Jika anda ingin mengetahui lebih lanjut mengenai menggunakan Atoum untuk ujian unit PHP, anda boleh membaca tutorial ini.
<code>$this->integer($classInstance->myMethod()) ->isEqualTo(10); $this->string($classInstance->myMethod()) ->contains("Something heppened"); </code>selenium
Selenium adalah alat untuk ujian penyemak imbas automatik (ujian integrasi dan penerimaan). Ia menukar ujian ke dalam perintah API penyemak imbas dan menegaskan hasil yang diharapkan. Ia menyokong penyemak imbas yang paling banyak.
kita boleh menggunakan sambungan untuk menggunakan selenium dengan phpUnit.
<code>Feature: Listing command In order to change the structure of the folder I am currently in As a UNIX user I need to be able see the currently available files and folders there Scenario: Listing two files in a directory Given I am in a directory "test" And I have a file named "foo" And I have a file named "bar" When I run "ls" Then I should get: """ bar foo """</code>
ini adalah contoh mudah:
<code>$this->integer($classInstance->myMethod()) ->isEqualTo(10); $this->string($classInstance->myMethod()) ->contains("Something heppened"); </code>
Jika anda ingin mengetahui lebih lanjut mengenai ujian dengan phpunit dan selenium, anda boleh membaca siri artikel ini.
senja
<code>composer require --dev phpunit/phpunit composer require --dev phpunit/phpunit-selenium </code>Anda boleh menyemak tutorial ini untuk memulakan dengan senja untuk ujian.
Kahlan
Kahlan adalah unit ujian yang berfungsi sepenuhnya dan BDD yang menggunakan sintaks menggambarkan-it.
Seperti yang dapat dilihat dari sintaks di atas, ia sama dengan ujian Behat. Kahlan menyokong stub dan simulasi luar kotak, tanpa kebergantungan, liputan kod, pelaporan, dll.
<code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase { public function testFormSubmissionWithUsername() { $this->byName('username')->value('name'); $this->byId('subscriptionForm')->submit(); } } </code>
php_testability
<code>class LanguagesControllerTest extends DuskTestCase { public function testCreate() { $this->browse(function (Browser $browser) { $user = $this->getAdminUser(); $browser->loginAs($user) ->visit('/panel/core/languages') ->click('#add') ->assertPathIs('/panel/core/languages/create') ->type('name', 'Arabic') ->select('direction', 'rtl') ->press('Submit') ->assertSee('Language: Arabic') ->assertSee('ar') ->assertSee('rtl') ->assertSee('Language created'); }); } } </code>
Pakej terakhir yang disebutkan adalah kesesuaian PHP. Ia adalah alat analisis statik yang memberitahu anda tentang isu -isu kesesuaian dalam program anda dan menghasilkan laporan terperinci.
Pakej pada masa ini tidak mempunyai versi yang ditandakan yang boleh anda harapkan, tetapi anda boleh menggunakannya dengan selamat dalam pembangunan. Anda boleh memasangnya melalui komposer:
kemudian jalankan seperti ini:
<code>describe("Positive Expectation", function() { it("expects that 5 > 4", function() { expect(5)->toBeGreaterThan(4); }); }); </code>
Perkhidmatan Integrasi Berterusan (CI)
<code>it("makes a instance double with a parent class", function() { $double = Double::instance(['extends' => 'Kahlan\Util\Text']); expect(is_object($double))->toBe(true); expect(get_parent_class($double))->toBe('Kahlan\Util\Text'); }); </code>
Bahagian penting ketika bekerja dengan pasukan untuk menyampaikan kod adalah keupayaan untuk memeriksa kod tersebut secara automatik sebelum menggabungkannya ke repositori rasmi projek. Kebanyakan perkhidmatan/alat CI yang tersedia dapat menguji kod pada platform dan konfigurasi yang berbeza untuk memastikan kod anda dapat digabungkan dengan selamat.
Terdapat banyak perkhidmatan yang menawarkan penilaian harga yang baik, tetapi anda juga boleh menggunakan alat sumber terbuka:
phpci: (sumber terbuka) Pengenalan artikel.
- Travisci: (Projek Sumber Terbuka Percuma) Artikel Pengenalan.
- Semaphoreci: (Open Source Project Free) Artikel Pengenalan.
- Jenkins: artikel pemula.
- Kesimpulan
Bagaimana pengalaman anda dengan alat di atas? Adakah kita terlepas sesuatu? Tolong beritahu kami bahawa kami akan melakukan yang terbaik untuk mengembangkan senarai dengan alat yang diperlukan!
Soalan Lazim mengenai Alat Jaminan Kualiti PHP (FAQ)
Ciri -ciri utama apa yang perlu dipertimbangkan semasa memilih alat jaminan kualiti PHP?
Apabila memilih alat jaminan kualiti PHP, beberapa ciri utama perlu dipertimbangkan. Pertama, alat ini harus dapat melakukan analisis kod statik, yang melibatkan memeriksa kod sumber untuk kesilapan, bug, atau pelanggaran piawaian pengekodan tanpa melaksanakan program. Kedua, alat ini harus menyediakan rangka kerja ujian unit yang membolehkan anda menguji unit individu kod sumber untuk menentukan sama ada ia sesuai untuk digunakan. Ciri -ciri penting lain termasuk analisis liputan kod (mengukur tahap ujian kod) dan integrasi berterusan (kerap menggabungkan semua salinan kerja pemaju ke garis utama yang dikongsi).
Bagaimana alat jaminan kualiti php meningkatkan kecekapan proses pembangunan saya?
Alat jaminan kualiti PHP dapat meningkatkan kecekapan proses pembangunan dengan mengautomasikan banyak tugas yang memakan masa dan rawan kesilapan. Sebagai contoh, analisis kod statik secara automatik dapat mengesan kesilapan yang berpotensi dan pelanggaran piawaian pengekodan, menghapuskan kerumitan memeriksa kod anda secara manual. Begitu juga, rangka kerja ujian unit secara automatik boleh menguji unit individu kod sumber, memastikan bahawa mereka dapat berfungsi dengan baik sebelum diintegrasikan ke dalam sistem yang lebih besar. Ini dapat menjimatkan banyak masa dan usaha untuk menyahpepijat dan penyelesaian masalah.
Adakah terdapat alat Jaminan Kualiti PHP Sumber Terbuka yang tersedia?
Ya, terdapat banyak alat jaminan kualiti PHP sumber terbuka yang tersedia. Ini termasuk php_codesniffer (memeriksa pelanggaran piawaian pengekodan dalam kod); Alat ini percuma untuk digunakan dan boleh disesuaikan dengan keperluan khusus anda.
(Jawapan FAQ berikut juga ditulis semula, menjaga makna asal tidak berubah dan menyesuaikan gaya bahasa untuk menjadikannya lebih lancar dan lebih semula jadi.)
Atas ialah kandungan terperinci 8 mesti mempunyai alat jaminan kualiti php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Untuk mengendalikan muat naik fail dengan selamat di PHP, terasnya adalah untuk mengesahkan jenis fail, menamakan semula fail, dan menyekat kebenaran. 1. Gunakan finfo_file () untuk memeriksa jenis mime sebenar, dan hanya jenis tertentu seperti imej/jpeg dibenarkan; 2. Gunakan uniqid () untuk menghasilkan nama fail rawak dan simpannya dalam direktori akar bukan web; 3. Hadkan saiz fail melalui borang php.ini dan html, dan tetapkan kebenaran direktori ke 0755; 4. Gunakan Clamav untuk mengimbas malware untuk meningkatkan keselamatan. Langkah -langkah ini dengan berkesan menghalang kelemahan keselamatan dan memastikan bahawa proses muat naik fail adalah selamat dan boleh dipercayai.

Dalam PHP, perbezaan utama antara == dan == adalah ketat pemeriksaan jenis. == Penukaran jenis akan dilakukan sebelum perbandingan, contohnya, 5 == "5" pulangan benar, dan === meminta nilai dan jenis adalah sama sebelum benar akan dikembalikan, sebagai contoh, 5 === "5" mengembalikan palsu. Dalam senario penggunaan, === lebih selamat dan harus digunakan terlebih dahulu, dan == hanya digunakan apabila penukaran jenis diperlukan.

Kaedah menggunakan operasi matematik asas dalam PHP adalah seperti berikut: 1. Tanda tambahan menyokong bilangan bulat dan nombor terapung, dan juga boleh digunakan untuk pembolehubah. Nombor rentetan akan ditukar secara automatik tetapi tidak disyorkan kepada kebergantungan; 2. Tanda -tanda pengurangan - tanda, pembolehubah adalah sama, dan penukaran jenis juga terpakai; 3. Tanda -tanda pendaraban menggunakan tanda *, yang sesuai untuk nombor dan rentetan yang serupa; 4. Bahagian menggunakan / tanda, yang perlu mengelakkan pembahagian dengan sifar, dan perhatikan bahawa hasilnya mungkin nombor terapung; 5. Mengambil tanda modulus boleh digunakan untuk menilai angka ganjil dan bahkan, dan apabila memproses nombor negatif, tanda -tanda selebihnya selaras dengan dividen. Kunci untuk menggunakan pengendali ini dengan betul adalah untuk memastikan bahawa jenis data adalah jelas dan keadaan sempadan ditangani dengan baik.

Ya, PHP boleh berinteraksi dengan pangkalan data NoSQL seperti MongoDB dan Redis melalui sambungan atau perpustakaan tertentu. Pertama, gunakan pemacu MongoDBPHP (dipasang melalui PECL atau komposer) untuk membuat contoh pelanggan dan mengendalikan pangkalan data dan koleksi, penyisipan sokongan, pertanyaan, pengagregatan dan operasi lain; Kedua, gunakan perpustakaan predis atau lanjutan phpredis untuk menyambung ke REDIS, lakukan tetapan dan pengambilalihan nilai utama, dan mengesyorkan PHPREDI untuk senario berprestasi tinggi, sementara Predis mudah untuk penempatan pesat; Kedua-duanya sesuai untuk persekitaran pengeluaran dan didokumentasikan dengan baik.

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()
