Zitat von chorn
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
GeoIP2 einbinden
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zuletzt geändert von tomBuilder; 05.01.2018, 16:22.
-
Zuletzt geändert von Messier 1001; 05.01.2018, 17:27.Zitat von tomBuilder Beitrag anzeigenDeine vendors - denn um die dreht es sich hier - sind auch im git ?
Wenn diese dort benötigt werden kommen sie dahin, wenn nicht benötigt müssen sie auch nicht ins Repo.
Nachtrag:
Ich glaube verstanden zu haben warum Du das fragst: mal sehen…
Du denkst das vendor prinzipiell nicht ins Repository gehört?
Wenn ja, nein das ist so nicht korrekt. Das kommt darauf an um was für ein Project es sich handelt. Wenn ich eine Library z.B. zur Weiterverwendung für andere Entwickler baue dann gehe ich davon aus das der Entwickler der meinen Kram nutzen will auch dazu befähigt ist die nötigen Werkzeuge einzusetzen also gibts dort nur die composer.json. Wenn ich aber eine z.B. eine Webanwendung für Endnutzer in meinem Repository habe dann wär es fatal hier zu erwarten das der Endanwender sich composer installiert! Der will alles runterladen, configurieren, fertsch
Kommentar
-
Mit "Vendors" meinst du die Pakete die Composer z.B. von GitHub runterlädt? Dann ja, die gehören mit ins GIT, wenn die Software diese Pakete unbedingt braucht. Es geht ja auch darum, die in der richtigen Version vorliegen zu haben, mit der getestet wurde. Und die dürfen halt auch nicht mal einfach so verschwinden, nur weil der Maintainer keinen Bock mehr hat (Paket gelöscht). Dann auf dem Produktivsystem zu updaten wäre ja fatal.[I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]
Kommentar
-
Zuletzt geändert von tomBuilder; 06.01.2018, 10:46.Zitat von Messier 1001 Beitrag anzeigen
Du denkst das vendor prinzipiell nicht ins Repository gehört?
Wenn ja, nein das ist so nicht korrekt. Das kommt darauf an um was für ein Project es sich handelt. Wenn ich eine Library z.B. zur Weiterverwendung für andere Entwickler baue dann gehe ich davon aus das der Entwickler der meinen Kram nutzen will auch dazu befähigt ist die nötigen Werkzeuge einzusetzen also gibts dort nur die composer.json. Wenn ich aber eine z.B. eine Webanwendung für Endnutzer in meinem Repository habe dann wär es fatal hier zu erwarten das der Endanwender sich composer installiert! Der will alles runterladen, configurieren, fertsch
Bei dem was Du LiB nennst, sind wir wohl der gleichen Meinung, überspringen wir das also.
Jede nicht auf ein Project begrezte Funktionalität lagere ich in ein eigenes Repo aus, diese installiere ich auch über den Composer.
Dadurch habe ich eine recht übersichliche Versionierung.
Ein Repositry mit allen Vendor Files halte ich für unübersichtlich und vor allem fallen da Änderungen an, an denen ich nicht entwickle, welche also auch nicht da rein gehören.
Vendorfiles blähen zudem das Repositry auf, In heutigen Zeiten ja wohl egal.
Endanwender bekommen von mir entweder das ganze installiert (mit composer), oder zwei zip Files (vendor inclusive Composer.json) und das eigentliche Project.
Diese bereite ich vor mit Composer, nicht über git.
Zwei Fragen noch zu Eurem Vorgehen:
- checked Ihr alle Dateien in Vendor ein inclusive Tests uä. oder wie filtert Ihr?
- da Vendor Files nicht ins DocRoot gehören, wie lösst Ihr das Problem mit unterschiedlichen Bezeichnungen des Docroot und/oder einem Verbot von softlinks im Webserver?
Es geht ja auch darum, die in der richtigen Version vorliegen zu haben, mit der getestet wurde.
https://getcomposer.org/doc/faqs/sho...r-directory.md
Kommentar
-
Zitat von Messier 1001 Beitrag anzeigenDas spielt keine Rolle. Mach es ordentlich oder lass es!
Kommentar
-
Zitat von dark_rider Beitrag anzeigenSchade, dass man hier, wenn man sich selbst demütig als Einsteiger deklariert, von oben herab heruntergeputzt wird und unbedingt genau so arbeiten soll, wie es Profis tun. Ist das nicht ein wenig Overkill? In einem Auto-Bastlerforum wird einem doch auch nicht gesagt "richte Dir für Deine gelegentlichen Jobs eine professionelle Werkstatt ein oder lass es"...
Hier kannste erstmal lesen, was das soll:
https://php-de.github.io/jumpto/composer/
Ich daenke es wird Dir ein leichtes sein, das schnell mal lokal aufzusetzen.
Wieso lokal?
Da gibt es viele Gründe, der entscheidende scheint daß man den vollen Überblick über das System hat.
Wer programmiert muss ja ohnehin die Eigenheiten des genutzten OS kennen!
Ich werde mich wohl auf meine alte Tage nicht mehr mit Winxx auseinadersetzen, auch wenn die geschriebenen Seiten meist unter Winxx aufgerufen werden.
Kommentar
-
Zitat von dark_rider Beitrag anzeigenSchade, dass man hier, wenn man sich selbst demütig als Einsteiger deklariert, von oben herab heruntergeputzt wird und unbedingt genau so arbeiten soll, wie es Profis tun. Ist das nicht ein wenig Overkill? In einem Auto-Bastlerforum wird einem doch auch nicht gesagt "richte Dir für Deine gelegentlichen Jobs eine professionelle Werkstatt ein oder lass es"...
Kommentar
-
Alles schön und gut, Euer aufwändiges Schema F. Nur: Das ist nicht so einfach!
1. Ich gehe auf: https://github.com/maxmind/GeoIP2-php
2. Dort steht, man soll eingeben:
curl -sS https://getcomposer.org/installer | php
Nur: Unter Windows gibt es curl gar nicht und lässt sich folglich gar nicht ausführen. Was ist daher zu tun? PS: Sorry, dass ich kein Linux-User bin...
Kommentar
-
OK, den Composer habe ich über hellbringers o.g. Link installiert. Die Datei composer.phar musste ich dann allerdings anderswo im "ProgramData"-Verzeichnis suchen und von dort ins php-Verzeichnis des noch vorhandenen XAMPP kopieren.
Dann dort per Kommandozeile aufgerufen:
php composer.phar require geoip2/geoip2:~2.0
Dadurch entstand schließlich das Verzeichnis "vendor" mit Unterverzeichnissen, welches ich zusammen mit einer aktuellen GeoIP2-Datenbank ("GeoLite2-City.mmdb") in ein neues Verzeichnis namens "geoip2" verschoben habe. Dieses dann auf den Webserver kopiert und mit einer Test-PHP-Datei verwendet - das funktioniert jetzt.
Warum es das Verzeichnis "vendor" nicht einfach direkt zum Download gibt und was dieser Composer-Zinnober soll, verstehe ich immer noch nicht. Für die meisten User überflüssig und nur unnötige Hürden schaffend.
Kommentar
-
Zitat von dark_rider Beitrag anzeigenOK, den Composer habe ich über hellbringers o.g. Link installiert. Die Datei composer.phar musste ich dann allerdings anderswo im "ProgramData"-Verzeichnis suchen und von dort ins php-Verzeichnis des noch vorhandenen XAMPP kopieren.
Zitat von dark_rider Beitrag anzeigenWarum es das Verzeichnis "vendor" nicht einfach direkt zum Download gibt und was dieser Composer-Zinnober soll
Hättest Du Dir einfach mal alles durchgelsen was Dir geschrieben wurde wär Dir das nicht passiert.
Zitat von dark_rider Beitrag anzeigenFür die meisten User überflüssig und nur unnötige Hürden schaffend.
Wenn Dich so nen Kleinkram bereits vor solche Hürden stellt ist Programmieren u.u. nicht die beste Wahl für dich!
Kommentar
-
Du weißt es ja eh besser. Anwenderorientierung von Anbieterseite her halt ("die Anwender sind zu blöd"), von Anwendern wie Dir selbst so gedacht. Aus meiner Sicht ist es nach wie vor erheblich unkomplizierter, einen Ordner mit ein paar Dateien zu kopieren, als extra lokal einen "Composer" zu installieren und sich mit diesem abzumühen - wahrscheinlich auch noch nur, damit es der Anbieter einfacher hat. Aber sei es drum, ich bin ja eh nur in der untersten von drei Userklassen hier (wenn überhaupt) und den höheren Kasten äh Klassen nachgelagert.
Abschließende Frage: Die neue GeoIP-Datenbank hat ca. 60 MB Größe statt zuvor in der Legacy-Version nur etwa 17 MB. Ist das Format nur deutlich ineffizienter, oder sind die Daten nun genauer (was mir nach einem ersten Eindruck nicht so zu sein scheint)?
Kommentar
-
Du denkst auf eine zu kurze Sicht. "Ordner kopieren" wird auf Dauer sehr zeitintensiv, wenn diese Pakete auch aktuell gehalten werden müssen. Oder wenn es Abhängigkeiten gibt. Paket 1 benötigt Paket 2 und 3. Paket 3 benötigt Paket 4 und 5. Statt einen Ordner werden plötzlich 5 Ordner kopiert (und zusammen gesucht). Und sowas vervielfacht sich schnell.
Ein entfernter Vergleich ist vielleicht ein Smartphone. Stell dir vor statt einem "Update All" müsstest du jede App einzeln runterladen und einen Ordner aufs Smartphone kopieren. Da würde doch kaum jemand seine Apps updaten, weil das so viel Arbeit und so mühsam ist. Und die ähnliche "Gefahr" besteht auch, wenn man Ordner in seine PHP-Anwendung kopiert. Das macht man dann wohl genau einmal und verwendet es so lange es halt läuft.
Kommentar
Kommentar