Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: Aktualizacja zmodyfikowanych CMS'ów

Zawsze stroniłem od używania gotowych CMS'ów (np. joomla), ale ostatnio moja opinia na ten temat zaczęła się zmieniać. Mam jednak pewien problem, którego rozwiązania nie widzę.

Co jakiś czas wychodzą poprawki/aktualizacje do takich systemów. Wszystko jest ok, tzn. wprowadzenie tych poprawek nie sprawia większych problemów, dopóki nie zmieniliśmy oryginalnego kodu źródłowego. Ale jeśli w ramach przystosowywania do swoich potrzeb przemieliliśmy spory kawałek kodu, to chyba sprawa aktualizacji nie jest już taka prosta.

Jak na mój gust sprowadza się do brudnej roboty - bierzesz listę zmian i ręcznie je wprowadzasz w swojej aplikacji. Tyle że to wcale nie takie proste, bo przecież swój kod zmieniałeś, i wskazówki z aktualizacji (np. nr linii) są mało przydatne.

Czy rzeczywiście aktualizacja modyfikowanego mocno przez się CMS'a to taka niewdzięczna robota, czy też są/istnieją/macie jakieś sposoby na to?

Temat: Aktualizacja zmodyfikowanych CMS'ów

To zależy jak bardzo kod został zmodyfikowany. Nie ma innego sposobu niż nałożenie modyfikacji ręcznie.
Warto przy każdej modyfikacji zrobić sobie diffa z oryginałem i go gdzieś zapisać. Dzięki temu porównanie poźniejszych zmian będzie łatwiejsze.

Jeżeli używasz jakiegoś systemu kontroli wersji, typu svn, czy cvs, to narzędzia do ich obsługi przeważnie mają wbudowane zarządzanie różnicami w plikach.
Jeśli natomiast nie korzystasz z tego typu narzędzi, to jest wiele programów pozwalających na porównywanie plików. Ja osobiście używam vimdiff, ale jest to bardziej program dla ekscentryków ;).
Mariusz Gil

Mariusz Gil Architekt, Tech-Lead

Temat: Aktualizacja zmodyfikowanych CMS'ów

Modyfikowanie gotowej aplikacji w sposób inny niż tworzenie pluginów, czy innego rodzaju wtyczek, jest na dłuższą metę zajęciem dla kamikaze. Zawsze będzie przecież tak, że będą publikowane aktualizacje oprogramowania czy patche zwiększające np. bezpieczeństwo danego oprogramowania. Integracja tych uaktualnień ze zmienionym kodem aplikacji może być czasem po prostu niemożliwa.

Tak jak mówi Michał, można korzystać z narzędzi typu svn/cvs i różnego rodzaju diffy, bez tego nie należałoby się do tego typu prac zabierać. Tylko w ten sposób stajesz się już developerem osobnego produktu i nie masz już takiego wsparcia jak osoby korzystające z pierwotnej jego wersji.

Widziałem kilka przerobionych CMS'ów OpenSource, głównie Mambo, za każdym razem powtarzam sobie, że nie chciałbym tam nic ruszać "pod maską". O integracji z aktualizacjami już nie wspominając...

konto usunięte

Temat: Aktualizacja zmodyfikowanych CMS'ów

Zmiana kod bazowego powinna się odbywać w taki sposób żeby nowy kod był oddzielony od bibliotek czy gotowych funkcji np poprzez rozszerzanie klas frameworka lub cmsa albo stosowanie różnych hacków na składowe systemu. W innym wypadku architektura ( mambo, bambo czy czegos innego ) jest od podstaw schrzaniona i takie problemy się będą nawarstwiać...
Jeżeli ktoś uważa że nie da się zmian wprowadzać nie w kodzie ktorego zachowanie sie modyfikuje polecam przyjrzeć się sfMixins w Symfony ;]

konto usunięte

Temat: Aktualizacja zmodyfikowanych CMS'ów

Pierwszym błędem było wybranie joomla jako CMS - to gów..o mimo, że bardzo popularne, zawsze podkląda kłody pod nogi.

Przypominajać, że jesto to grupa PHP mogę sobie pozwolić na stwierdzenie, że minimalne wymaganie od CMS'a to praca w Modelu MVC - w takim przypadku modyfikacji (jeżeli nie da się ich wdrożyć na poziomie wtyczek czy pluginów) można dokonąć na poziomie wyłacznie widoku.

Udało mi się tak np.: przeżyc 3 upgrade mocno zmodyfikowanego Drupala. Pamiętać należy jednak, że najlepsze wyjscie to wtyczki i moduły.
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: Aktualizacja zmodyfikowanych CMS'ów

Dziękuję za wszystkie wskazówki.

Czyli generalnie nie jest zbyt różowo. Chyba zanim się zabiorę do tworzenia strony na bazie czegoś istniejącego, muszę dobrze przewidzieć, co potrzebuję, czego może będę potrzebował w przyszłości, wybrać jakąś metodologię wprowadzania zmian, a prawie na samym końcu wybrać gotowca;) Trzeba też pewnie wziąć pod uwagę to, że ktoś inny może kiedyś będzie to to aktualizował.

Tak sobie głośno myślę.

Z mojego punktu widzenia, to chyba najgorsza część pracy z gotowymi rozwiązaniami? [pomijam kopiowanie plików na serwer;)] Zakładam, że nie porzucamy projektu od razu po wykonaniu swojej roboty.
Czy też czekają na chętnego do korzystania z gotowców gorsze niespodzianki?

konto usunięte

Temat: Aktualizacja zmodyfikowanych CMS'ów

Michał Sznurawa:
Jak na mój gust sprowadza się do brudnej roboty - bierzesz listę zmian i ręcznie je wprowadzasz w swojej aplikacji. Tyle że to wcale nie takie proste, bo przecież swój kod zmieniałeś, i wskazówki z aktualizacji (np. nr linii) są mało przydatne.

Są co najmniej dwa rozwiązania które znam:
1. phpBB - zaznaczanie linii. Sprawdza się nawet w zmodyfikowanym kodzie. Dajesz znaczniki przed i po zmianie i nie ma problemu.

2. Drupal - porównujesz z kopią wzorcową i patrzysz co się zmieniło. Tzn instalacje masz opartą np. na wersji systemu 5.1 to na boku trzymasz cały czas wersję oficjalną i w momencie upgrade'u porównujesz co sie zmieniło i nanosisz poprawki ręcznie. Tyle, że w Drupalu prawie wszystko jest modułem, więc łatwo robić to z podziałem na domeny tematyczne.

A Drupala patche'uje teraz na wzór phpBB - ze znacznikami początku i końca zmiany.
Jakub L.

Jakub L. Programista

Temat: Aktualizacja zmodyfikowanych CMS'ów

A te CMSy to są w jakimś CVSie trzymane?
Jeżeli tak, to przed zmianą ładuje się kod CMSa do własnego repozytorium, robi się zmiany i się ma. Przydaje się jeszcze tag z wersją z oryginalnego repozytotorium, żeby wiedzieć, czego później szukać.
Wychodzi nowa wersja CMSa, generuje się diffy z wersji, która była bazową dla naszych zmian, generujemy diffy naszych zmian względem bazowej wersji i łączymy, jak nie ma konfliktów, jest łatwo, jak są - trudniej.
I cała filozofia, potem testy.
Akurat CMSy nie są wyjątkiem.
Tomasz Struczyński

Tomasz Struczyński TeamLeader PHP i
analityk

Temat: Aktualizacja zmodyfikowanych CMS'ów

Ja tam pracuję ostatnio nad Drupalem i jestem raczej zadowolony. Przede wszystkim dlatego, że nie muszę większości rzeczy modyfikować, wystarczy dopisać własne moduły. I reszta się ładnie upgrade'uje a moje moduły (zmiany) są oddzielnie. Jak je trzeba do nowych wersji dostosowac (rzadko), to... wiem, gdzie zmieniałem :P

Następna dyskusja:

Quick.Cms PROBLEMY




Wyślij zaproszenie do