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
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ć.
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
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.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)