Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak robicie online update?
Forum PHP.pl > Forum > PHP
Avatarus
Witam
Planuje zrobić online update system CMS i zastanawiam sie jaki system updatu będzie najbardziej sensowny:

Taki że na jednym stałym zewnętrznym serwerze będą pliki które się zmieniły.
Np jeśli zmienił sie plik x1.php i x23.php to te pliki znajdą się tam w całości
Do tego będzie plik który będzie zawierał listę plików do zmiany.
Ewentualnie plik z zmianami w bazie.

Teraz te pliki było by pobierane poprzez FTP (via PHP)
a potem podmieniane na serwerze skąd rozpoczęto update.

Czy taki system jest dobry?
dotangelo
online update system => to na angielskich forach winksmiley.jpg
W update.php sprawdzaj po prostu daty zmiany plików, i jesli są nowsze na zdalnym serwerze, wtedy je pobieraj oraz podmieniaj.
vokiel
Zapisz u klienta jego aktualną wersję systemu 1.2.2.1
Sprawdzając aktualizację sprawdzasz zgodność wersji. Jeśli masz nowszą na serwerze, to wtedy następuje aktualizacja. Które pliki to już powinieneś ustawić na serwerze.

IMHO sprawdzanie daty zmiany plików nie ma sensu.
Po pierwsze primo - należałoby sprawdzić wszystkie pliki - a przy dużym systemie to masa porównań.
Po drugie primo (tj. secundo) - jeśli usr zmieni cokolwiek w kodzie, usunie spację, przeniesie klamrę do nowej linii, zmieni konfigurację, cokolwiek, data zmiay pliku się zmieni, co nie będzie równoważne z tym, że wersja tego pliku jest nowsza.

Czyli, wg mnie (osobista opinia), najlepiej po każdej aktualizacji wersji, na serwerze zrobić listę plików, które zostały zmodyfikowane, aby klient ściągał tylko te potrzebne, bez zbędnego rypania dysku u siebie w poszukiwaniu daty zmiany plików.

Pozdrawiam
Avatarus
Według mnie lista z zmianami jest lepsza z powodów jakie opisujesz.

A jak robicie sprawdzanie aktualizacji, periodycznie czy na żądanie?
vokiel
Periodycznie, raz na tydzień wystarczy, chyba, że system jest strasznie rozwojowy. Sprawdzanie trwa chwilke, jeśli robi się porównanie numeru wersji. Ja osobiście preferuje numer jako zwykła liczba. Np: 12231 co się przenosi u klienta na 1.2.2 build 31. Wtedy sprawdzanie robię przez proste porównanie:
  1. <?php
  2. if ($ver_serwer>$wer_klient){ update();}
  3. ?>


Trzeba tylko uważać na ewentualne zmiany dokonane przez klienta. Dobrze jest więc wyświetlić listę plików, które ulegną nadpisaniu, z pytaniem, czy przypadkiem nie grzebał w tych plikach, bo jeśli tak, to utraci te zmiany. No i dać możliwość zrezygnowania z aktualizacji, albo w ogóle wyłączenia automatycznej aktualizacji.

Pozdrawiam
erix
Cytat
Wtedy sprawdzanie robię przez proste porównanie:

Tak btw, version_compare" title="Zobacz w manualu PHP" target="_manual. :]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.