Php Desktop ile masaüstü uygulamayı güncellemek
Daha önce php ile windows masaüstü uygulama yapmak hakkında bir yazı paylaşmıştım. Aktif olarak kullandığım bir uygulamada arada güncelleme yapmam gerekiyor. Ben php-desktop'u basit bir arayüz olarak kullanıyorum.
Kullanıcıların firefox yada chrome benzeri internet tarayıcıları kullanması yerine benim belirlediğim programı kullanmaları performans olarak daha faydalı. Bu şekilde kullanıcılar sadece yaptıkları işe odaklanabiliyor.
Arada uygulamaya güncellemeler yapmam gerekiyor. Bu güncellemeleri el ile 50 kullanıcıda yapmak tam bir zulüm. Bunun yerine kullandıkları programa ufak bir batch dosyası yazarak işleri kolaylaştırdım. Güncellenecek dosyaları siteye yüklüyorum ve sitedeki versiyon.txt yi değiştirdiğimde işlem başlıyor.
Php-desktop uygulamasının kurulu olduğu www klasörünün altındaki index.php'de ufak bir kontrol yaptırıyorum. Dizinde versiyon.txt adında bir dosyam var bu dosyada programın hangi versiyon olduğu yazıyor. örnek : 11.0 program siteye gidip oradaki versiyonu kontrol ediyor. Eğer versiyon farklı ise sitedeki update.bat dosyasını indirip çalıştırıyor. Bu güncelleme kontrol işlemi php-desktop uygulamasını her kapatıp açtığında yapıyor.
index.php
<?php
$myfile = fopen("versiyon.txt", "w");
$txt = "11.0";
fwrite($myfile, $txt);
fclose($myfile);
$vkontrol = fopen("versiyon.txt", "r");
$versiyon = fgets($vkontrol);
fclose($vkontrol);
$url = "http://siteadresi.com/versiyon.txt";
$data = file_get_contents($url);
if ($versiyon !=$data)
{
$url = 'http://siteadresi.com/update.bat';
$curlCh = curl_init();
curl_setopt($curlCh, CURLOPT_URL, $url);
curl_setopt($curlCh, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlCh, CURLOPT_SSLVERSION,3);
$curlData = curl_exec ($curlCh);
curl_close ($curlCh);
$downloadPath = "update.bat";
$file = fopen($downloadPath, "w+");
fputs($file, $curlData);
fclose($file);
sleep(1);
exec("START update.bat");
}
if ($versiyon == $data)
{
?>
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-9"></META>
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=http://siteadresi.com/desktop.php"></META>
</head>
<body>
</body></html>
<?php }?>
taskkill /F /IM "phpdesktop.exe"
bitsadmin.exe /transfer "LUTFEN BEKLEYIN!! INDEX UPDATE!" http://siteadresi.com/index.ph C:\phpdesktop\www\index.php
bitsadmin.exe /transfer "LUTFEN BEKLEYIN!! SETTINGS UPDATE!" http://siteadresi.com/settings.json C:\phpdesktop\settings.json
ipconfig /flushdns
del "C:\phpdesktop\webcache\*.*" /s /f /q
start C:\phpdesktop\phpdesktop.exe
exit();
Yorumlar