Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Framework - utrzymanie
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
pandi
Witam

Mam taki mały problem, w ramach budowy projektu został stworzony framework oparty o ZF (obsługa bazy, kolekcji, obiektów, błędów etc). Wszystko działa pięknie sobie ale teraz nadszedł czas tworzenia kolejnego projektu i pojawił się problem/pytanie.

W jaki sposób dbacie o to żeby najaktualniejsza wersja frameworka była dystrybuowana po różnych projektach, przy założeniu, że nie wszystkie części frameworka są wykorzystywane we wszystkich projektach.

Na chwilę obecną całość leży w CVSie (a niedługo pewnie zostanie przeniesiona do SVNa).

Pozdrowienia
LBO
Zakładając, że masz dobry loader plików (ten z ZF jest okay), wystarczy, że do każdego projektu podasz odpowiednią ścieżkę do głównych bibliotek frameworka. Wszystko opiera się na tym. Możesz mieć kilka folderów z frameowrkiem (a w każdym inną wersję, tudzież rewizję z SVN) i odpowiednio zaadresować je w bootstrap'ie aplikacji.

edit:
Dodam tylko, że API frameworka powinno być ustabilizowane, inaczej wychodzi na to, że każda aplikacja pisana jest pod inną wersję. A tego powinien programista unikać.
pandi
byłoby to być może dobre rozwiązanie gdyby nie fakt iż projekty te będą zupełnie autonomiczne - realizowane na różnych maszynach.

Jak na razie znalazłem jedno rozwiązanie które powinno zadziałać:

1. Wydzielenie frameworka z projektu do oddzielnego projektu
2. Przejście na SVNa
3. Wykorzystanie svn:external do includowania frameworka w poszczególnych projektach

Ciekawe jak się to będzie sprawowało w praktyce.

Pozdrowienia
Ace
Sam ostatnio męcze się z tym problemem..

Framework jest jeden, ale jest używany w wielu aplikacjach.
Mam również pewne moduły które się powtarzają - np: koszyk, sklep, rabaty, newsy, newsletter etc...

Fajnie by było w jakiś sposób rozwijać te moduły tak, aby później w prosty sposób możnabyło je zaktualizować w starych projektach.

Kolejna rzecz, to jest to, że czasem framework ewoluuje wraz z kolejnymi projektami.

Więc framework jako jeden projekt, a każdy projekt dla klienta składa się z bierzącej wersji FW + moduly/akcje/widoki - ja tak to widze, chociaż chodzi mi po głowie możliwość tworzenia i rozwijania modułów - oddzielnie.
NoiseMc
Cytat
3. Wykorzystanie svn:external do includowania frameworka w poszczególnych projektach

Wlasnie zaczalem kombinowac z svn:external i prawde mowiac jestem troche zagubiony.

Mam 3 aplikacje korzystajace z tych samych bibliotek nazwijmy je bibliotekami zewnetrznymi mimo ze pisane przeze mnie to zupelnie niezalezne od projektu.

Planowalem rozbic to na taka strukture:
Kod
/
/--app_1
/--app_2
/--lib
/----Smarty
/----Costam


I pozwolic zeby app_1 i app_2 zaczytywaly kod ze wspolnego katalogu. Ale problem powstal w momencie kiedy pomyslalem ze rozne wersje app_1 i app_2 moga uzywac roznych wersji lib. W tym wypadku pomysl pada bo jezeli zrobie rollback app_1 do wersji sprzed miesiaca to aplikacja pada, a jezeli zrobie rollback lib to padaja wszsytkie aplikacje w ktorych nie zostaly zaimplementowane zmiany dotyczace uzycia lib.

Najlepiej byloby gdybym mial mozliwosc edytowania lib niezaleznie od app_1 i app_2 i gybym mogl robic commit jednego z trzech niezaleznie, ale dobrze by bylo zeby app_1 wiedziala z ktorej wersji lib korzystac w momencie kiedy robie svn export i robie wdrozenie.

Macie jakies pomysly jak najlepiej to rozwiazac?
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-2024 Invision Power Services, Inc.