2009-10-02 9 views
6

to jest głównie pytanie dotyczące PHP. Zastanawiam się: w jaki sposób upewniasz się, że wszystkie potrzebne biblioteki są spakowane wraz z aplikacją podczas wykonywania instalacji na serwerach (produkcyjnych)?Jak radzisz sobie z zależnościami bibliotek podczas wdrażania za pomocą PHP?

Bardziej konkretny przykład: Mam aplikację działającą w Zend Framework i za każdym razem, gdy uruchamiam aplikację na serwerze, proces wdrażania tworzy nową "instalację" w tym systemie. Dlatego muszę połączyć Zend Framework z moją aplikacją, a następnie skopiować pliki we właściwe miejsca razem (odbywa się to automatycznie). Obecnie używam definicji svn: externals, aby pobrać pliki z systemu SVN Zend podczas wdrażania, jednak nie chcę polegać na tym, że SVN i ja również nie chcemy umieszczać ruchu na zewnętrznych SVN przy każdym wdrożeniu .

W świecie Java jestem przyzwyczajony do Mavena, który obsługuje takie rzeczy przy użyciu repozytoriów centralnych artefaktów. Wiem, że istnieje wersja Maven4PHP, jednak bardziej szukam rozwiązania opartego na PHP. Ponadto nie uważam, że PEAR jest dobrym rozwiązaniem, ponieważ nie spełnia moich wymagań związanych z łączeniem aplikacji (włącznie z bibliotekami) w jeden plik wdrożeniowy.

Czy jest dostępne jakieś narzędzie, którego nie jestem świadomy? A może masz jakąś wspaniałą technikę, którą powinienem znać?

Wielkie dzięki za pomoc!

Michael

Odpowiedz

3

Istnieje system budowania nazywa Phing który jest napisany w PHP i oparte na Apache Ant.

Ja osobiście mogę bardzo dobrze żyć z zewnętrznymi.

+1

Tak, znam Phinga! Czy istnieje gotowe do wykonania zadanie do rozwiązywania zależności? A może chodzi o pisanie mojego własnego zadania? Dzięki! –

+0

@Michael Obsługuję zależności za pomocą phing z prostszym podejściem. Może nie być tak solidne, jak prawdopodobnie powinno być zadanie zależności, ale mam zestaw pomocników phing, które są prostymi skryptami do kompilacji zaprojektowanymi do włączenia do zadania importowania, w moim pomocniku projektu definiuje zadanie resolve-deps, które jest foreach który uruchamia zadanie phing do zewnętrznego skryptu kompilacji z przypisanymi właściwościami definiującymi zależność. –

0

Nie jest jeszcze gotowy do produkcji, ale warto obserwować projekt Phark. Jest to port Bundler do PHP.

Przeglądając slajdy Simplify your external dependency management natknąłem się na narzędzie o nazwie pantr, które może być używane jako instalator PEAR. pantr as PEAR installer co pozwala określić zależności w pliku specyficznym dla projektu.

Artykuł Version Control != Dependency Management ma jakieś informacje na temat korzystania z nowego instalatora PEAR nazwie Pyrus

3

myślę vendor branching rozwiązałoby problem ze swoim przykładzie dość proste, ale jeśli też nie lubią dużych repozytoriów ja poleca do oglądania na nowoczesnych zabawkach jak composer i what it solve (i może phark, nigdy wcześniej nie słyszałem :))

+0

+1 za wzmiankę o kompozytorze, jest to stare pytanie, jak sądzę, jednak do tej pory bezwzględna większość projektów PHP używa Composer do zarządzania zależnościami. –

Powiązane problemy