Napisałem platformę PHP i CMS na samej ramie. CMS jest zależny od frameworka, ale frameworka istnieje jako samodzielny folder w plikach CMS. Chciałbym zachować je jako osobne projekty w GitHub, ale nie chcę mieć problemów z aktualizowaniem projektu CMS przy każdej aktualizacji frameworka. Idealnie byłoby, gdyby CMS w jakiś sposób pobierał pliki frameworka w celu włączenia ich do predefiniowanego podkatalogu, zamiast fizycznego popełniania tych plików.
Czy jest to możliwe dzięki Git / GitHub? Jeśli tak, to co muszę wiedzieć, aby działało? Pamiętaj, że mam bardzo, bardzo podstawowy poziom doświadczenia z Git - mogę tworzyć repozytoria i zatwierdzać za pomocą wtyczki Git dla Eclipse, łączyć się z GitHub i tyle. Obecnie pracuję solo nad projektami, więc do tej pory nie musiałem się dużo więcej uczyć o Git, ale chciałbym otworzyć go na innych w przyszłości i chcę się upewnić, że mam rację.
Jaki powinien być mój idealny przepływ pracy dla projektów z zależnościami? Wszelkie wskazówki na ten temat również byłyby bardzo mile widziane. Jeśli potrzebujesz więcej informacji o mojej konfiguracji, po prostu zapytaj w komentarzach.
źródło
Odpowiedzi:
Po pierwsze, jeśli naprawdę chcesz do tego użyć git, zastanów się nad użyciem jego funkcji Submodule :
Strona z linkami zawiera szczegółową dyskusję, w tym przykłady tego, jak dokładnie z niej korzystać.
Powiedziałbym, że nie polecam używać systemu kontroli wersji do zarządzania zależnościami, a raczej zacznę korzystać z narzędzia do kompilacji, które poradzi sobie z tymi rzeczami, takimi jak Maven lub Ant . Istnieje nawet narzędzie do budowania specyficzne dla PHP o nazwie Phing , ale sam jeszcze go nie używałem. Wspomniano o tym w artykule omawiającym twoje pytanie: Kontrola wersji! = Zarządzanie zależnościami .
Powodem, dla którego narzędzia kompilacji mogą być lepiej dopasowane na dłuższą metę, jest to, że często obsługują one również różne typy repozytoriów, biblioteki zewnętrzne (i różne lokalizacje) oraz szczegółowe sprawdzanie. Jeśli jednak chcesz po prostu zintegrować te dwie biblioteki i nie chcesz dodatkowych kłopotów, podejście do podmodułów jest prawdopodobnie wystarczające.
źródło
Submodules Git to świetny sposób zarządzania zależnościami projektu git.
Jeśli szukasz innego podejścia:
Kompozytor może zrobić to wszystko za Ciebie. Kompozytor jest menedżerem zależności dla php. Jego składnia to json. Jest raczej łatwy i tani w użyciu.
Więcej o kompozytorze:
Na stronie dokumentacji można znaleźć przykład budowy pliku composer.json:
Po utworzeniu pliku composer.json i composer.lock dla projektu możesz łatwo zainstalować zależności:
composer.phar install
lub zaktualizuj je:composer.phar update
lub utwórz konkretny projekt z packagist :composer.phar create-project acmeproject
źródło
Ostatnio zacząłem używać narzędzia o nazwie Pundle do zarządzania zależnościami mojego projektu. Obsługuje wersję PHP, pakiety PEAR, repozytoria Git i repozytoria SVN jako zależności i pozwala łatwo je określić za pomocą „pliku Pundlefile”.
Powinieneś także skonfigurować swoje zależności, aby kasy Git / SVN były umieszczane w katalogu, który nie jest pod kontrolą wersji (np. „Sprzedawca”), abyś mógł zacząć od nowa przy każdym kasie i aby utrzymać repozytorium projektu.
źródło