Kiedy projekt dochodzi do etapu, w którym trzeba/warto pokazać go „na zewnątrz” trzeba go jakoś wdrożyć na serwerze. Automatyzacja całego procesu budowania i wdrożenia jest ważna a wgranie plików na serwer jest jednym z etapów. W jego realizacji z wykorzystaniem FTP może pomóc Phing i zadanie FtpDeployTask. Żeby móc z niego skorzystać trzeba mieć w systemie pakiet PEAR: Net_FTP.
<ftpdeploy host="${ftp.host}" port="${ftp.port}" username="${ftp.username}" password="${ftp.password}" dir="${ftp.dir}" passive="false" <fileset dir="dist"> <include name="**"/> </fileset> </ftpdeploy>
Jak widać powyżej użycie tego zadania jest banalnie proste (jeżeli jednak nie, to polecam moje wcześniejsze wpisy nt. Phinga).
Za dobry pomysł uważam budowanie projektu dla środowisk „zewnętrznych” w osobnym katalogu (ignorowanym przez IDE). Dzięki temu można uwzględnić strukturę katalogów na serwerze (np. umieszczenie plików wywoływanych przez cron w innym katalogu niż projekt). Dodatkową zaletą jest fakt, że mając odwzorowaną strukturę katalogów z serwera w podkatalogu można również wgrać pliki z wykorzystaniem klienta FTP. Przy mało stabilnym połączeniu internetowym wgranie plików projektu może być utrudnione ponieważ błąd wgrania jednego pliku przerywa wykonywanie całego zadania.
Przydatne linki:
Jacek, a czemu nie Ant? 🙂
Dobre pytanie! Z plusów Phinga jakie dostrzegam to przede wszystkim oparcie na PHP:
– jeżeli trzeba by coś dopisać to łatwiej w PHP niż Javie;
– programista PHP na pewno ma PHP a Javy nie musi 😉
– Phinga można instalować w systemie albo dorzucić do zależności composera i się nim nie martwić.
Ant używałem tylko na studiach i to do Javy, więc nie mam o nim opinii. Z drugiej strony na 4developers Piotr Pasich mówił, że testowali Phinga, ale mieli problemy z połączeniem go z Jenkinsem i przenieśli się na Ant. Jakie plusy/minusy Ant mógłbyś wymienić?