cari
Rumahpembangunan bahagian belakangtutorial phpMenyumbang kepada Sumber Terbuka: Kajian Kes GateKeeper

menyumbang kepada projek sumber terbuka: kes praktikal

Artikel ini akan menerangkan secara terperinci bagaimana untuk menyumbang kod untuk membuka projek sumber melalui kes praktikal. Kami akan mengambil Perpustakaan Gatekeeper sebagai contoh untuk menambah fungsi pengiraan dan secara beransur -ansur menunjukkan keseluruhan proses, termasuk komunikasi dengan pemilik projek, pelaksanaan kod, ujian, dan mengemukakan permintaan tarik.

Pengenalan kepada Perpustakaan Gatekeeper

GateKeeper adalah perpustakaan PHP untuk pendaftaran pengguna, pengesahan, dan kebenaran. Ini menjadikannya sepenuhnya dipisahkan dari aplikasi utama, menjadikannya mudah untuk skala dan mengubah suai.

Tambah fungsi pengiraan

Pada masa ini, untuk mendapatkan jumlah pengguna dalam pangkalan data, Gatekeeper perlu terlebih dahulu mendapatkan semua rekod pengguna, kemudian mengira, atau menulis secara manual pertanyaan SQL. Untuk memperbaiki ini, kami akan menambah ciri pengiraan ke antara muka penyesuai untuk menjadikannya asli dan bersedia untuk menambah enjin pangkalan data lain pada masa akan datang.

Langkah 1: Berkomunikasi dengan pemilik projek

Sebelum mula menyumbang, mula berkomunikasi dengan pemilik projek untuk mengesahkan sama ada ciri tersebut telah dirancang dan sama ada ia diperlukan. Biasanya, hanya mungkin untuk mencadangkannya dalam isu projek.

Langkah 2: garpu, klon dan ujian

Pertama, projek garpu ke repositori GitHub anda sendiri. Kemudian, klon pergi secara tempatan, pasang kebergantungan dan jalankan ujian:

git clone <你的fork地址>
cd gatekeeper
composer install
vendor/bin/phpunit

Semua ujian harus diluluskan. Selepas itu, buat cawangan baru untuk membangunkan:

git checkout -b "feature-count"

Langkah 3: Pelan Tindakan

GateKeeper pada masa ini hanya menyokong pangkalan data MySQL. Kita perlu mengubah suai bahagian berikut:

  • Gatekeeper/DataSource: Kelas DataSource Abstrak
  • DataSource/MySQL: Sumber data MySQL yang mengandungi kaedah sebenar
  • DataSource/Stub: kemas kini stub supaya penyumbang lain tahu bahawa mereka perlu menambah kaedah kiraan

Pemproses kiraan baru juga diperlukan, kerana Gatekeeper menggunakan panggilan statik sihir untuk membuat, mencari, mengemas kini, dan memadam entiti.

Langkah 4: Pelaksanaan Kod

  1. Delegasikan Panggilan Statik: Tambah blok Gatekeeper::__callStatic dalam elseif mewakilkan panggilan statik ke pemproses kiraan baru. Pada masa yang sama, kemas kini sifat statik $actions.

  2. Buat pemproses kiraan: Buat Psecio/Gatekeeper/Handler/Count.php fail, tulis logik pemproses kiraan, yang sama dengan pemproses membuat, tetapi melakukan operasi pengiraan.

  3. Ubah suai DataSource dan Stub: Tambah Psecio/Gatekeeper/DataSource/Stub.php Tandatangan kaedah dalam count dan kelas abstrak.

  4. Melaksanakan kaedah kiraan Sumber Data MySQL: Melaksanakan kaedah DataSource/MySQL.php dalam count, yang menggunakan fungsi COUNT(*) MySQL untuk dikira.

Contributing to Open Source: Gatekeeper Case Study

Contributing to Open Source: Gatekeeper Case Study

Contributing to Open Source: Gatekeeper Case Study

Contributing to Open Source: Gatekeeper Case Study

Langkah 5: Ujian

Contributing to Open Source: Gatekeeper Case Study

Buat projek baru, pasang perpustakaan Gatekeeper yang diubahsuai menggunakan komposer, dan lakukan ujian. Ujian ini harus meliputi pelbagai senario, seperti mengira semua pengguna, mengira pengguna berdasarkan keadaan, dll.

Langkah 6: Hantar permintaan tarik

Hantar kod ke repositori garpu anda sendiri dan buat permintaan tarik untuk menghantar ulasan kod kepada pemilik projek.

Ringkasan

Artikel ini memperkenalkan secara terperinci proses penyumbang kod untuk membuka projek sumber melalui kes tertentu. Walaupun kes ini agak mudah, ia meliputi kebanyakan langkah yang menyumbang kepada projek sumber terbuka dan memberikan rujukan yang baik untuk pemaju yang ingin mengambil bahagian dalam projek sumber terbuka. Ingat bahawa ujian dan komunikasi yang jelas adalah kunci kepada sumbangan yang berjaya.

Atas ialah kandungan terperinci Menyumbang kepada Sumber Terbuka: Kajian Kes GateKeeper. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Suntikan Ketergantungan di PHP: Menghindari Perangkap BiasaSuntikan Ketergantungan di PHP: Menghindari Perangkap BiasaMay 16, 2025 am 12:17 AM

DependencyInjection (DI) inphpenhancescodeflexabilityandtestabilitybydecouplingDependencyCreationFromusage.toImplementDieffectively: 1) UseIcontainersjudiciousytoavoavoidover-engineering.2) mengelakkan constructoLoadbylimitingdendenchreeorfour.3)

Cara mempercepat laman web PHP anda: Penalaan PrestasiCara mempercepat laman web PHP anda: Penalaan PrestasiMay 16, 2025 am 12:12 AM

Toimproveyourphpwebsite'sperformance, usetheseStrategies: 1) pelaksanaanPodeCachingWithopcachetospeedupscriptinterpretation.2) OptimisedataBasequeriesqueriesSelectingOnlyNessaryFields.3)

Menghantar e -mel massa dengan PHP: Adakah mungkin?Menghantar e -mel massa dengan PHP: Adakah mungkin?May 16, 2025 am 12:10 AM

Ya, itispossibletosendmassemailswithphp.1) uselibrarieshpmailerorswiftmailoreforefficientemailsending.2)

Apakah tujuan suntikan ketergantungan dalam PHP?Apakah tujuan suntikan ketergantungan dalam PHP?May 16, 2025 am 12:10 AM

DependencyInjection (DI) inphpisadesignpatternTheevesinversionofControl (IOC) ByallowingdependencyestobeNectedIntoClasses, Enhancingmodularity, Testability, danFlexibility.DideDecouplassClassSesesesesSesesSesesSesesSesesSesesSesesspeciflementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglemors, Maklumat

Bagaimana cara menghantar e -mel menggunakan php?Bagaimana cara menghantar e -mel menggunakan php?May 16, 2025 am 12:03 AM

Cara terbaik untuk menghantar e -mel menggunakan PHP termasuk: 1. Gunakan fungsi mel () php untuk penghantaran asas; 2. Gunakan perpustakaan phpmailer untuk menghantar mel lebih kompleks HTML; 3. Gunakan perkhidmatan mel transaksional seperti SendGrid untuk meningkatkan keupayaan kebolehpercayaan dan analisis. Dengan kaedah ini, anda boleh memastikan bahawa e -mel bukan sahaja mencapai peti masuk, tetapi juga menarik penerima.

Bagaimana cara mengira jumlah elemen dalam pelbagai PHP multidimensional?Bagaimana cara mengira jumlah elemen dalam pelbagai PHP multidimensional?May 15, 2025 pm 09:00 PM

Mengira jumlah elemen dalam array multidimensi PHP boleh dilakukan dengan menggunakan kaedah rekursif atau berulang. 1. Kaedah rekursif dikira dengan melintasi array dan rekursif memproses susunan bersarang. 2. Kaedah berulang menggunakan timbunan untuk mensimulasikan rekursi untuk mengelakkan masalah kedalaman. 3. Fungsi Array_Walk_Recursive juga boleh dilaksanakan, tetapi ia memerlukan pengiraan manual.

Apakah ciri-ciri gelung sementara di PHP?Apakah ciri-ciri gelung sementara di PHP?May 15, 2025 pm 08:57 PM

Dalam PHP, ciri-ciri gelung do-sementara adalah untuk memastikan bahawa badan gelung dilaksanakan sekurang-kurangnya sekali, dan kemudian memutuskan sama ada untuk meneruskan gelung berdasarkan syarat-syarat. 1) Ia melaksanakan badan gelung sebelum pemeriksaan bersyarat, sesuai untuk senario di mana operasi perlu dilakukan sekurang -kurangnya sekali, seperti pengesahan input pengguna dan sistem menu. 2) Walau bagaimanapun, sintaks gelung do-sementara boleh menyebabkan kekeliruan di kalangan pemula dan boleh menambah overhead prestasi yang tidak perlu.

Bagaimana Hash Strings dalam PHP?Bagaimana Hash Strings dalam PHP?May 15, 2025 pm 08:54 PM

String hashing yang cekap dalam PHP boleh menggunakan kaedah berikut: 1. Gunakan fungsi MD5 untuk hashing cepat, tetapi tidak sesuai untuk penyimpanan kata laluan. 2. Gunakan fungsi SHA256 untuk meningkatkan keselamatan. 3. Gunakan fungsi password_hash untuk memproses kata laluan untuk menyediakan keselamatan dan kemudahan tertinggi.

See all articles

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

Nordhold: Sistem Fusion, dijelaskan
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.