Composer

Hej
Jeg har nu fulgt videoen med "Send mail via PHP", som kræver Composer. Det er en rigtig god video, men den går ud fra at man har PHP på sin computer. Det har man vel som udgangspunkt ikke :)
Det var også det der drillede mig ved Composer, første gang jeg kiggede på det; Hvorfor skal jeg installere noget lokalt, når det jo er på et webhotel, det skal bruges? Det virker omvendt og forkert. Mit udviklingsmiljø er jo netop på en webserver, for at jeg helst ikke vil sovse min egen maskine til med webserver, php og mysql databaser :)

Hej @simonpedersen
Du har en god pointe. Det virker en smule tosset. Og derfor bruger flere og flere også en "rigtig" server, ikke blot et "webhotel" til når de udvikler. Desuden så findes der pakke-løsninger som sætter alt op for dig i dag, om du er på Windows eller Mac. Der er bl.a. MAMP til Mac og XAMP til Windows. (Linux, har jo alle mulighederne for at bare installere en LAMP-stack nemt og hurtigt via dens package manager. F.eks. apt-get.)
Eksempelvis hjemme hos mig selv, køre min Raspberry Pi Model B 512mb - lighttpd, PHP5 og MySQL. Så jeg kan teste alt på den - inden at jeg smider det op på en server et sted. Så har personligt aldrig haft problemet at jeg behøver noget lokalt.
Ved et webhotel for du desværre aldrig adgang direkte med eksempelvis SSH. Så derfor har jeg altid valgt at have en server kørende selv, eller købe en udefra. F.eks. en v5.dk Cloud Server. Men igen, man for vel også hvad man betaler for?
Det kan virke tosset og irriterende, men tiderne ændre sig. Du kan jo heller ikke rigtig udvikle til eksempelvis Node.js uden at have noget kørende der hjemme i dag.
Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#0
Hej @simonpedersen
Kort om Composer til Windows og om kommende videoer i emnet:
Videoen er somsagt lavet til Mac OS X som kommer præinstalleret med PHP. Så på Mac er PHP automatisk installeret i dit operativsystem, og videoen vil virke out-of-the-box
Der er flere som også har ønsket videoer om Composer til Windows - så det er i pipeline'n :) Windows er lige mere besværlig som udviklingsmaskine, da Windows ikke, ligesom Mac OS X, kommer præinstalleret med en fuldblods UNIX-terminal og ikke mindst værktøjer som bl.a. cURL, Python, PHP og Perl.
Ydermere er der planlagt flere videoer om den generelle brug af Composer - som hvordan du opdaterer til nyeste version og vedligeholder dit library.
Kort forklaring til dine spørgsmål til Composer på lokal maskine versus direkte på server:
Når du har et webhotel med FTP-adgang, sådan som de fleste webhoteller i Danmark fungerer, skal du installere og vedligeholde dit composer-library fra din egen maskiner, og herefter uploade det via FTP til dit webhotel.
Composer er i sin enkelthed et meget simpelt program, der henter en masse PHP-kode udfra din "require"-fil (composer.json). Og det er alt Composer gør. Den PHP kode skal herefter lægges på dit webhotel, og om man downloader på sin computer først, for så at uploade eller om downloader direkte til webhotellet, er underordnet, resultatet er det samme.
Du nævner at du gerne vil undgå at din maskiner bliver snavset til, i princippet behøver du ikke "Composer"-programmet, du kan hvis du vil, manuelt downloade pakkene fra packagist.org->Github og lægge dem op, men det er noget mere besværligt end at bruge den lille Composer-app, fordi den tager højde for versioner og afhængigheder (andre pakker som automatisk bliver downloadet hvis de er krævet af den pakke du vil installere).
Men det er da klart, at hvis du har din egen server, og ikke bruger lokal udvikling, kan du ligeså installere composer her, direkte på serveren. Du kan du følge de samme punkter som vi i videoen, bare direkte i terminalen (over SSH) på serveren, og opsætte og vedligeholde dit composer-library direkte her på serveren.
Her på v5.dk har vi ikke installeret Composer på vores servere og jeg tror ikke ret mange gør sådan.
Normalt foregår web-udvikling på lokale maskiner og ikke direkte på en server. Man arbejder med koden lokalt, hvorefter ændringer efterfølgende uploades til en test-server, og her efter en produktionsserver (eller direkte til en produktionsserver, hvis man ikke har en test-server).
Hvis man begyndte at opdatere PHP-kode direkte på serveren, ville det ikke være i sync med ens lokale kode, medmindre man opsatte et flow, hvor serveren også kunne committe til ens kode-base på f.eks. Git/SVN/Mercurial/Dropbox/Google Drive/eller-hvad-man-nu-bruger. Men i min verden skal en web-server ikke bruges som en udviklingsmaskine
Her på v5.dk har vi som i videoen her installeret en lokal instans af Composer på vores udviklings-maskiner og vedligeholder vores Composer-library lokalt, hvorefter vi committer til Git, vores test-server, og når alt er godt, videre til vores produktionsserver. Og det er også sådan jeg oplever at de fleste dev-teams arbejder.
Jeg håber dette gav lidt inspiration til hvorfor vi gør, som vi gør - og hvorfor composer på egen maskine, bestemt ikke er bad-practice. :-)
PS. Bemærk også at Composer blot er en download-manager, når først du har downloadet de pakker du skal bruge, kan du blot slette programmet, hvis du ikke ønsker det længere. Det betyder også at Composer ikke er nødvendigt på alle de maskiner du bruger til at udvikle med. Composer-programmet bruges blot til den indledende download af PHP-koden fra de valgte pakker, og efterfølgende opdatering af selvsamme pakker, hvis de kommer i en nyere version - og man ønsker dette.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS