1 ) Step แรกต้องมีการส่ง API กลับไปหา Server ก่อนครับ เช่นถ้ามีการเข้าหน้า Dashboard ก็จะมี Ajax call ไปเช็ค version ล่าสุด ก็ get version ปัจุบันของเราไปเทียบกับล่าสุด ถ้ามันน้อยกว่าก็ขึ้นปุ่ม Update มาให้กด
2 ) หลังจากเช็คได้ว่า curent version ไม่ตรงกับ lastest version บน Server ก็สั่งให้ download ไฟล์มา ซึ่งส่วนใหญ่เป็น zip มาครับ และการ update แต่ละ version จะมีการแก้ไขไฟล์บางส่วนไม่ได้แก้ไขทั้งหมด เรียกว่า incremental update ไม่ใช่ full update ครับ ก็ทำตาม Business logic เลยครับ
- Download incremental update มาไว้ที่ /tmp (สมมตินะครับ)
- แตกไฟล์ จะได้
/update.php
/sql/1.11-1.1.2.sql
/file/1.php
/file/2.php
- ระบบจะรันไฟล์ update.php ในนั้นก็อาจจะ alter table หรือรันพวก แก้ไข database จากไฟล์ 1.11-1.1.2.sql แล้วก็ทำการเอา 1.php , 2.php ไปทับ หรือเพิ่มใน core system ครับ
หลักการประมาณนี้ครับ
จริงๆมันมีอะไรที่ซับซ้อนกว่านี้ครับก่อนจะรันไฟล์ update เพราะต้องเช็คให้แน่ใจก่อนว่าสิทธิ์ที่จะอัพเดทได้หรือเปล่า เช่น สิทธิ์ไฟล์ funtion ที่จะใช้งาน server timeout บราๆๆ
ลองไล่อ่าน code ของ wordpress ก็ได้ครับเป็น open source
https://codex.wordpress.org/Configuring_Automatic_Background_Updates