Kotchasan PHP Framework

เทคนิคการรวมโปรเจ็คที่สร้างจากคชสารเข้าด้วยกัน


เนื่องจากคอนเซ็ปต์ของคชสารคือเป็นโมดูล (MMVC) ดังนั้นโดยพื้นฐาน การรวมโปรแกรม ก็คือการรวมโมดูลนั่นเอง

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

จากตัวอย่างในคลิป เราต้องการรวมโปรแกรม E-Document เข้ากับโปรแกรม eDms โดยที่เราจะทำการรวมโปรแกรมทั้งสองเข้าด้วยกัน ไปที่โปรแกรม eDms

เริ่มต้นก็ทำการดาวน์โหลดไฟล์และแตกไฟล์ให้เรียบร้อย ซึ่งในคลิปผมแยกออกมาเพื่อให้ดูง่ายๆ
ทำการเปรียบเทียบโฟลเดอร์ทั้ง 2 โปรเจ็ค ด้วยโปรแกรมเปรียบเทียบไฟล์
  • บนวินโดวส์ผมแนะนำ Winmerge
  • บน Ubuntu (ตามตัวอย่าง) ผมใช้โปรแกรม meld
จากคลิป เปิดมาตอนแรกเป็นการเปรียบเทียบไฟล์ทั้งหมดที่แตกต่างกัน (มีไฟล์อยู่ทั้ง 2 โฟลเดอร์ แต่เนื้อหาของไฟล์ไม่เหมือนกัน) ซึ่งผลลัพท์จะเป็นสีน้ำเงิน ซึ่งจะเห็นว่ามีเพียงไม่กี่ไฟล์เท่านั้นที่แตกต่างกัน (ส่วนใหญ่จะเหมือนกัน)
ถ้าเราเปิดดูแต่ละไฟล์ เราจะเห็นความแตกต่างของไฟล์ที่เปิดขึ้นมาทั้งสองฝั่ง ให้เราทำการสำเนาข้อความส่วนที่แตกต่างกันจากทางขวามือ ไปยังซ้ายมือ (เป้าหมายที่เราต้องการคือโปรแกรม eDms) จุดสังเกตคือ ส่วนที่เป็น Highlight นั่นแหละที่แตกต่างกัน จุดที่ตรงกันจะเป็นข้อความปกติ
มีบางกรณีเหมือนกันที่บางจุดอาจจะมีการทำ Highlight ทั้ง 2 ฝั่ง จุดนี้เราต้องตัดสินใจเอาเองครับว่าเราจะดำเนินการอย่างไร โดยทั่วๆไปเราอาจจะต้องเลือกเก็บไว้ทางใดทางหนึ่งเท่านั้น (แนะนำให้เก็บเป้าหมายไว้)

หลังจากที่ทำการเปรียบเทียบไฟล์ทุกไฟล์เรียบร้อยแล้ว ขั้นตอนต่อไปคือการหาไฟล์ที่มีอยู่ในโปรเจ็คหนึ่ง แต่ไม่มีในอีกโปรเจ็ค โดยการกดไปที่ปุ่ม New (โปรแกรม Meld ตามคลิป)
ในโหมดนี้ (ประมาณนาทีที่ 5:30) โปรแกรมจะแสดงรายชื่อไฟล์ที่มีอยู่ในโปรเจ็คหนึ่ง แต่ไม่มีอยู่ในอีกโปรเจ็ค ถ้าสังเกตดูจะเห็นว่า ทั้งสองโปรเจ็คมีไฟล์ที่ต่างกันอยู่ในโมดูล dms และโมดูล document เท่านั้น (สีเขียว) ขั้นตอนนี้ไม่มีอะไรยาก ให้เราทำการย้ายไฟล์จากโฟลเดอร์ทางขวามือ ไปยังซ้ายมือเท่านั้น หลักการพิจารณาก็เหมือนการเปรียบเทียบไฟล์ในขั้นตอนแรกนั่นแหละครับ คือ ย้ายไฟล์ใดๆก็ตามที่มีในด้านขวามือ ไปทางซ้ายให้หมด

ขั้นตอนหลักๆ ก็มีแค่นี้แหละครับ ที่เหลือคือทดสอบติดตั้งและใช้งานดู

หมายเหตุ
  • ในบางโปรแกรมเช่น e-Booking โมดูล Index และ skin จะมีความแตกต่างจากโปรแกรมส่วนใหญ่ เนื่องจากโปรแกรม e-Booking มีบางหน้าที่ไม่จำเป็นต้องเข้าระบบก่อน ในการรวมกับโปรแกรมนี้ จะต้องตัดสินใจว่าจะใช้โมดูล Index แบบไหน ต้องการหน้าที่ไม่เข้าระบบก่อนหรือไม่ เพื่อเลือกโมดูล Index และ skin ที่เหมาะสม
  • ในบางโปรแกรม เช่น Inventory และ eBorrow อาจจะมีบางโมดูลชื่อซ้ำกัน (Inventory) แต่มีรายละเอียดของโมดูลแตกต่างกัน การรวมโปรแกรมในกรณ๊นี้อาจจะยุ่งยากสักหน่อย เนื่องจากอาจจะต้องเลือกการรวม (ในส่วนที่แตกต่างกัน) ให้เหมาะสม เพื่อให้โปรแกรมสามารถทำงานได้เป็นปกติ ในเบื่องต้นผมแนะนำให้ทำการรวมกันไปก่อน แล้วค่อยมาแก้ไขเพิ่มเติมเอาในตอนที่ทำการทดสอบ (อาจต้องมีการแก้ไขทั้งโค้ด และ ฐานข้อมูลร่วมด้วย)