bende bu yazılım update işleminin basit olduğunu düşünmüyorum , stabil çalışması için sağlam temel üzerine oluşturmanız gerek.
İlk etapta düşününce aşağıdaki method geliyor aklıma ama ne gibi sorunlarla karşılaşılabilir kodun içine girmeden bilemem.
Versiyon kontrol kısmı evet basit onu yaptınız daha sonra güncelle dediğinde birkaç farklı method denerdim.
Birincisi güncellenecek dosyaları zip ile sunucuya çekip sunucuda açıp , daha sonra ilgili yollardaki dosyaların üzerine yazıp en son var ise veritabanındaki güncelleme işlerini yapardım.
İkincisi (bu daha mantıklı geliyor bana ) bir api sistemi yazıp , xml yada json ile sadece değişiklileri iletirdim. bu xml i parse edecek bir class yazıp güncelleme işlemini tamamlardım.
<?xml version="1.0" encoding="utf-8"?>
<guncellemeler>
<item>
<durum>UPDATE</durum>
<yol>inc/class.php</yol>
<url>https://www.abc.com/updates/class.txt</yol>
</item>
<item>
<durum>DELETE</durum>
<yol>inc/func.php</yol>
<url></yol>
</item>
<item>
<durum>NEW</durum>
<yol>inc/new_func.php</yol>
<url>https://www.abc.com/updates/new_func.txt</yol>
</item>
<item>
<durum>NEW</durum>
<yol>css/boots.css</yol>
<url>https://www.abc.com/updates/boots.txt</yol>
</item>
</guncellemeler>
dediğim gibi bu yapıyı daha önce hiç yazmadım şuanda sadece aklıma gelenler , pratikte ne gibi zorluklar çıkar deneyip bakmak lazım.