![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jako twórca pewnej aplikacji internetowej mam pewien problem.
Zastanawiam się nad tym by zrobić automat do update'u. Oczywiście wszystko jest piękne do czasu gdy w kodzie php (w klasach, metodach itd) nie pojawiają się pewne specyficzne metody, obliczenia. Czy macie jakiś pomysł w jaki sposób oznaczyć kod tak by update dotyczył całej aplikacji oprócz pewnych "segmentów", które były zrobione specjalnie dla danego klienta (indywidualizacja?). Proste to niby gdy mamy osobne metody specyficzne dla klienta i trzymame je w innej klasie/pliku/miejscu. Jednak gorzej jest gdy zmiany dotyczą już istniejących metod. Myślałem by każdą instrukcję np. if else dzielić na jakieś bloki np. [php:1:b25050b7fe]<?php if(warunek){ realizacja } #1# #after 1 elseif(warunek){ specyficzna realizacja kodu. tego normalnie nie ma } #before 2 elseif(warunek){ realizacja } #2# else { realizacja } #3# ?>[/php:1:b25050b7fe] Oczywiście to prymitywny przykład i łatwo tą sytuację rozwiązać. Chodzi mi jednak o sens. W normalnym/standardowym kodzie części instrukcji elseif między #after 1 i #before 2 nie będzie i w czasie update musi być wiadome, że tam a nie gdzie indziej ten warunek musi być wstawiony/nieruszony. Czy macie jakieś lepsze pomysły/doświadczenie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 14.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
heh... mój brat (Zyx z webcity[.php].pl) w swoim enginie stron www (http://fillarws.sourceforge.net) zrobił taki bajer z patchami że wystarczy zrobić plik patrzujący który wygląda mniej więcej tak:
[php:1:3cb0141db9]c|This is a sample patch file! g|37 -| private $session_id; -| var $session_user; -| var $session_ip; +| var $session_id; +| private $session_user; +| private $session_ip; | var $session_browser; -| var $session_page; +| private $session_page; g|51 +| // Main constructor +| // calls init_session(); g|70 -| $sql -> sql_query('UPDATE users, sessions SET user_lastvisit = sessions.session_time WHERE sessions.session_time < '.(time() - fws::$config -> SESSION_TIME)); -| $sql -> sql_query('DELETE FROM sessions WHERE session_time < '.(time() - fws::$config -> SESSION_TIME)); c|*************** c|* Let's add something to the session init c|*************** f| $this -> session_type = $session_type; +| $this -> session_bizi = 19; g|196 +| // elele +| // elele e|[/php:1:3cb0141db9] c - komentarz patcha - - usunięcie linijki + - dodanie linijki - (spacja) pozostawienie linijki tak, jak jest g - idź do linii XXX f - znajdź linię e - zakończ patch Dzięki takiej konstrukcji możeliwe jest też łatwe odinstalowanie patcha, ponieważ interpreter zamienia sobie funkcjami + i - i plik powraca do pierwotnej formy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 14:07 |