How to become a MediaWiki hacker/th

บทความนี้เขียนขึ้นเพื่อช่วยให้นักพัฒนาได้เรียนรู้ทักษะพื้นฐานที่จำเป็นเพื่อนำไปสู่การพัฒนาแกนมีเดียวิกิ และส่วนขยายมีเดียวิกิ
 * โปรดทราบว่าในกรณีส่วนใหญ่เมื่อทำงานกับมีเดียวิกิ คุณไม่ต้องการที่จะแฮกแกนวิกิมีเดีย จนกว่าคุณจะรู้ถึงสิ่งที่คุณกำลังทำจริง ๆ

เส้นทางหลักในการเริ่มต้นใช้งานกับการพัฒนาวิกิมีเดียคือการร่วมกับโครงการวิกิมีเดียที่ให้คำปรึกษา ทางเลือกหนึ่งที่ไม่มีการให้คำปรึกษาคือการแก้ไขบั๊กเล็กน้อยที่น่ารำคาญ

หากคุณเป็นนักพัฒนาที่มีประสบการณ์ที่มีความคุ้นเคยกับการใช้มีเดียวิกิอยู่แล้ว ให้เยี่ยมชมแทน

สำหรับวิธีการอื่น ๆ ที่จะได้มีส่วนร่วมในชุมชนวิกิมีเดีย ดู 

ภาพรวม
มีเดียวิกิเป็นซอฟต์แวร์ที่ทรงอานุภาพของวิกิพีเดีย, โครงการพี่น้อง และวิกินับพันทั่วโลก

มีเดียวิกิได้รับการเขียนขึ้นในภาษาโปรแกรมพีเอชพี ใช้เจเควียรีเป็นไลบรารีของจาวาสคริปต์

มีเดียวิกิเขียนขึ้นเป็นหลักสำหรับแลมป์ และทำงานในระบบปฏิบัติการส่วนใหญ่ มีเดียวิกิใช้เซิร์ฟเวอร์ฐานข้อมูลมายเอสคิวเอล และมาเรียดีบีเป็นหลัก

การพัฒนาเกิดขึ้นในรูปแบบโอเพนซอร์ส โดยเป็นการประสานงานออนไลน์ส่วนใหญ่ และได้รับการสนับสนุนจากมูลนิธิวิกิมีเดีย แม้ว่าอาสาสมัครพัฒนาชุมชนจะมีส่วนสำคัญเช่นกัน

ทำตามบทแนะนำนี้เพื่อตั้งค่ากิตและเกอร์ริต เพื่อที่จะส่งแพตช์
 * อภิปรายการพัฒนา เกิดขึ้นในหลายรายชื่อผู้รับจดหมาย และช่องไออาร์ซี รายการผู้พัฒนาหลักคือ วิกิเทค-แอล ช่องนักพัฒนาซอฟต์แวร์หลักของไออาร์ซี คือ และ
 * ซอร์สโค้ด มีการจัดการโดยใช้ระบบควบคุมการแก้ไขกิต
 * รีวิวโค้ด จะดำเนินการใน
 * รายงานบั๊กและงานได้รับการจัดการในฟาบริเคเตอร์

หน้านี้จะช่วยให้คุณเป็นผู้มีส่วนร่วมกับมีเดียวิกิ นี่ไม่ได้เป็นเกี่ยวกับการสอน มันเป็นเพียงแค่จุดที่คุณไปยังสถานที่ต่าง ๆ ที่คุณสามารถไปเรียนรู้ต่อสิ่งที่จำเป็น



ตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ
You can install and develop MediaWiki on Linux, Windows, or macOS using any of the three solutions below.

โครงการส่วนใหญ่ใช้กิตและเกอร์ริต ทำตามเกี่ยวกับการสอนเกอร์ริต เพื่อตั้งค่าบัญชีนักพัฒนาซอฟต์แวร์ของคุณ จากนั้นคุณสามารถย้ายไปยังการดาวน์โหลดโค้ดของเรา, การทำการเปลี่ยนแปลง, การทดสอบเหล่านั้น และการยื่นเสนอแพตช์ มีสองวิธีการตั้งค่าพัฒนาสิ่งรอบข้างของคุณ: โดยติดตั้งเครื่องเสมือนที่กำหนดไว้ล่วงหน้า (วาแกรนต์ หรือ ดอกเกอร์) หรือวิธีการกำหนดค่าด้วยตนเอง

สภาพแวดล้อมการพัฒนาดอกเกอร์

 * เดฟดอกเกอร์มีเดียวิกิ - เรียกใช้มีเดียวิกิโดยใช้ดอกเกอร์ (สามารถใช้ได้กับโฮสต์ลินุกซ์, วินโดว์ส หรือแมคโอเอส)

You can also try the experimental mwcli tool which provides basic orchestration functionality for MediaWiki docker containers.

เครื่องเสมือนกับวาแกรนต์

 * MediaWiki Vagrant — Run MediaWiki on a Linux virtual machine using Vagrant. It is much faster than Docker on Windows.

Vagrant allows you start a MediaWiki instance you can develop as well as allowing you to add and develop any of 250+ extensions - all with a single command. This saves you installation and configuration time compared to manually installing but has the downside of running slower.



การติดตั้งด้วยตนเอง
MediaWiki can be developed by installing it natively on your system and editing its code. Installing it natively means it will run the fastest, but will take more time to configure than Docker or Vagrant.


 * 1)  — Check hardware requirements and install dependencies
 * 2)  — ดาวน์โหลดซอร์สโค้ดล่าสุดจากซอฟต์แวร์กิต
 * 3)  — ต่อด้วยการติดตั้งและกำหนดค่าเริ่มต้น
 * 4) * ตั้งค่าโหมดการแก้ปัญหาต่าง ๆ ในสภาพแวดล้อมของคุณ เพื่อแสดงคำเตือนและข้อผิดพลาดในช่วงต้น

PHP
มีเดียวิกิได้รับการเขียนในภาษาพีเอชพี ดังนั้นคุณจะต้องได้รับความคุ้นเคยกับภาษาพีเอชพี เพื่อที่จะแฮกแกนของมีเดียวิกิ


 * เรียนรู้ภาษาพีเอชพี
 * สอนการใช้ภาษาพีเอชพี — ใช้ประโยชน์ได้ในภาษาที่ต่างกัน หากคุณไม่ได้มีความรู้เกี่ยวกับภาษาพีเอชพีแต่รู้วิธีการเขียนโปรแกรมในจุดหมายภาษาโปรแกรมอื่น ๆ ภาษาพีเอชพีก็จะเป็นเรื่องง่ายสำหรับคุณที่จะเรียนรู้
 * PHP Programming at Wikibooks.
 * PHP at Wikiversity.


 * ทรัพยากรภาษาพีเอชพี:
 * คู่มือภาษาพีเอชพี — ให้บริการในภาษาที่แตกต่างกัน
 * การประชุมการเข้ารหัสภาษาพีเอชพีภายในชุมชนมีเดียวิกิ


 * สิ่งที่ต้องรู้:
 * สคริปต์  ในมีเดียวิกิ ได้เอื้ออำนวยตัวแปลภาษาพีเอชพีพื้นฐาน กับอ็อบเจ็คมีเดียวิกิ และประเภทที่ทำการโหลด
 * นอกจากนี้ สคริปต์  ในมีเดียวิกิเปลี่ยนจาก   ที่อิงจากไซเอสเอช (PsySH) ดู

ฐานข้อมูล
คุณสมบัติหลายอย่างจำเป็นต้องมีการจัดการฐานข้อมูลบางส่วน ดังนั้นคุณจึงต้องมีความคุ้นเคยกับมายเอสคิวแอล/มาเรียดีบี


 * เรียนรู้มายเอสคิวแอล/มาเรียดีบี
 * เกี่ยวกับการสอนมายเอสคิวแอล — จากคู่มืออ้างอิงมายเอสคิวแอล
 * MySQL at Wikibooks.


 * ทรัพยากรมายเอสคิวแอล/มาเรียดีบี
 * คู่มืออ้างอิงมายเอสคิวแอล — ใช้ประโยชน์ได้ในภาษาที่ต่างกัน
 * ฐานความรู้ของมาเรียดีบี
 * การประชุมการเข้ารหัสฐานข้อมูลภายในชุมชนมีเดียวิกิ


 * สิ่งที่ต้องรู้:
 * ทดสอบโค้ดของคุณกับมายเอสคิวแอล/มาเรียดีบี
 * มีเดียวิกิในปัจจุบันใช้มายเอสคิวแอลและมาเรียดีบี เป็นระบบจัดการเว็บไซต์ของฐานข้อมูลหลัก นอกจากนี้ยังสนับสนุนดีบีเอ็มเอสอื่น ๆ เช่น โพสต์เกรสคิวเอล และเอสคิวไลท์ อย่างไรก็ตาม นักพัฒนาเกือบทั้งหมดใช้มายเอสคิวแอล/มาเรียดีบี และไม่ทดสอบดีบีเอ็มเอสอื่น ๆ ซึ่งส่งผลทำลายอยู่เป็นประจำ คุณจึงควรใช้มายเอสคิวแอล/มาเรียดีบีเมื่อทำการทดสอบแพตช์ หากคุณกำลังพยายามที่จะปรับปรุงการสนับสนุนสำหรับฐานข้อมูลอื่นโดยเฉพาะ ในกรณีหลัง ให้แน่ใจว่าคุณระมัดระวังที่จะไม่ทำลายมายเอสคิวแอล/มาเรียดีบี (หรือเขียนคำสั่งที่มีความน่ากลัวที่ไม่มีประสิทธิภาพในนั้น) ตั้งแต่มายเอสคิวแอล/มาเรียดีบีเป็นสิ่งที่คนอื่นใช้



จาวาสคริปต์และซีเอสเอส
จาวาสคริปต์และซีเอสเอส ได้กลายเป็นรหัสส่วนหน้าเว็บไซต์ที่สามารถมองเห็นได้ในบราวเซอร์ที่มีอยู่ทั่วไปทุกหนทุกแห่ง คุณไม่ต้องคุ้นเคยกับจาวาสคริปต์, เจเควียรี และซีเอสเอสในการทำงานกับมีเดียวิกิ แต่คุณอาจต้อง โดยขึ้นอยู่กับสิ่งที่คุณจะเลือกทำงาน


 * เรียนรู้เกี่ยวกับจาวาสคริปต์และซีเอสเอส
 * JavaScript and CSS at Wikibooks.
 * เริ่มต้นกับเจเควียรี — เกี่ยวกับการสอนเจเควียรี
 * Learning JavaScript — references and sources.


 * ทรัพยากรจาวาสคริปต์และซีเอสเอส
 * การประชุมการเข้ารหัสจาวาสคริปต์ภายในชุมชนมีเดียวิกิ
 * การประชุมการเข้ารหัสซีเอสเอสภายในชุมชนมีเดียวิกิ

MediaWiki
ฐานรหัสมีเดียวิกิมีขนาดใหญ่ และมีบางส่วนที่น่าเกลียด ไม่ควรต้องถูกครอบงำโดยสิ่งดังกล่าว เมื่อคุณเริ่มต้นครั้งแรก โดยมุ่งมั่นที่จะเขียนคุณลักษณะหรือแก้ไขบั๊ก ซึ่งโดนเฉพาะอาณาบริเวณขนาดเล็กของรหัสเท่านั้น


 * ข้อมูลพื้นฐานของมีเดียวิกิและต้องอ่าน:
 *  — ภาพรวมระดับสูงขององค์ประกอบหลักมีเดียวิกิ และวิธีที่พวกเขาทำงานด้วยกัน
 *  — ภาพรวมของสาเหตุและวิธีการเขียนโค้ดที่เชื่อถือได้


 * ทรัพยากรมีเดียวิกิ:
 * — รายชื่อของไฟล์ที่สำคัญและเชื่อมโยงไปยังข้อมูลรายละเอียดเพิ่มเติม
 * — รายการของตะขอ หากคุณกำลังพยายามที่จะหาสิ่งที่เป็นส่วนหนึ่งของฐานรหัสทำอะไรบางอย่าง ก็มักจะเป็นตำแหน่งที่ดีที่จะเริ่มต้นด้วยการค้นหาตะขอที่เกี่ยวข้อง
 * — ภาพรวมของการประชุมการเข้ารหัสทั่วไปภายในชุมชนมีเดียวิกิ


 * รหัสเอกสาร ( class reference ) — สร้างเอกสารจากรหัส และแสดงความคิดเห็นรหัสโดยอัตโนมัติ
 * — คู่มือการแก้จุดบกพร่องมีเดียวิกิ
 * — เครื่องมือในการโต้ตอบกับอ็อบเจ็ค ของมีเดียวิกิแบบสด ๆ



ส่วนขยายมีเดียวิกิ
หากคุณเลือกที่จะทำงานในรหัสส่วนขยายมีเดียวิกิ ลิงก์ต่อไปนี้จะให้ข้อมูลเพิ่มเติม


 * ข้อมูลพื้นฐานเกี่ยวกับส่วนขยายมีเดียวิกิ:
 * การพัฒนาส่วนขยาย — วิธีการเขียนส่วนขยายสำหรับมีเดียวิกิ
 * สอนการเขียนส่วนขยาย


 * ทรัพยากรส่วนขยายมีเดียวิกิ:
 * แนวทางปฏิบัติที่ดีที่สุดสำหรับส่วนขยาย
 * คำแนะนำสั้น ๆ สำหรับการพัฒนาส่วนขยายมีเดียวิกิ — วิดีโอนำเสนอเกี่ยวกับวิธีการสร้างส่วนขยายมีเดียวิกิ (สไลด์)
 * การทำส่วนขยายมีเดียวิกิ — ครอบคลุมถึงวิธีการในการพัฒนาส่วนขยายสำหรับมีเดียวิกิ, การปฏิบัติที่ดีที่สุด และวิธีการที่จะมีส่วนร่วมในชุมชนมีเดีย ตั้งแต่เดือนกุมภาพันธ์ ค.ศ. 2011
 * ความช่วยเหลือสำหรับนักพัฒนาซอฟต์แวร์ส่วนขยายในศูนย์นักพัฒนาซอฟต์แวร์



ดูเพิ่ม

 * Search for code across repositories
 * – เมื่อคุณได้อ่านข้อมูลอย่างละเอียดในบทความนี้ ก็ถึงเวลาที่จะไปสู่ข้อมูลในศูนย์กลางนักพัฒนา