Ist es wichtig, baseUrl() in Zend Framework view-Skripte?
Einige Leute haben berichtet, Probleme mit dem Zugang zu, Einstellung zu, oder immer den richtigen Wert aus baseUrl()
in einem view Skript. Aber ich Frage mich, warum es notwendig ist, es überhaupt zu verwenden, zumindest in einer situation, wie der meinen, wo der ZF-Anwendung ist auf einem virtual private host (Amazon EC2), wo ich die volle Kontrolle über die Verzeichnisstruktur und die apache-rewrite-Regeln, sowie Routen.
Ich weiß zum Beispiel, dass Sie in das Dateisystem foo.jpg
lebt in public/images/foo.jpg
ist, und dass die Anwendung mod_rewrite leitet alle Anfragen an public
- also in meinem view Skripten ist es oft einfacher/klarer und effizienter zu schreiben, so etwas wie
<img src="/images/foo.jpg" />
statt
<img src="<?php echo $this->baseUrl();?>/images/foo.jpg" />
Welche Art der Zukunftssicherheit Robustheit oder anderen Vorteil hat die Verwendung von baseUrl()
wirklich? Bisher habe ich noch nicht verwendet, es überhaupt, und hatte kein problem. Aber ich geerbt haben einige code, der es verwendet, und meine Neigung ist es, Streifen aus jenen verwendet, wenn ich bin Bearbeiten eines view-Skripts, die Sie enthält. Würde ich bedauern, dass später?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendet diese Weise, es ist nicht wirklich nützlich, aber auf der anderen Seite, Sie es auf diese Weise
beweisen könnte nützlich sein in der Zukunft, da können Sie auch eigene Logik vor dem drucken die URL. Sich vorstellen, dass in ein paar Jahren Ihre website wächst, so mehr als Sie erwartet, und Sie haben, um alle statischen Inhalte auf eine
Content delivery network (CDN)
Sie müssen manuell (oder mit suchen und ersetzen) korrigieren Sie alle Ihre Bilder/css/js-Instanzen URLs. Mit derbaseUrl()
(oder wie nennen Sie esassetUrl()
) Sie hätte nur hinzufügen müssen, um Ihre CDN-url und es wird behoben werden, die überall in Ihrer Anwendung.BEARBEITEN
Fand ich eine Verwendung für die
baseUrl()
in dem code, den Sie geerbt :Es würde Ihnen erlauben, fügen Sie einen gemeinsamen URL-Teil für alle links und Verweise, in dem Fall, dass Ihre Website ist nicht auf der root der domain
In deiner config-Datei, die Sie würde nur noch hinzufügen
für Sie zu arbeiten, und alle deine links wären vorangestellt, mit diesem Teil
baseUrl
Helfer, nur um Weg von "hardcoded" Pfadangaben in den HTML-Code. Stellen Sie sich eine situation, wo Sie verteilen Ihre app an jemanden, und Sie nicht installieren Sie es in das root-Verzeichnis der Website, die jetzt alle Inhalte Verweise müssen geändert werden baseUrl. Verwenden Sie es jetzt, und es kann sparen Sie eine Menge Zeit später, und stellen Sie der Anwendung mehr tragbar.Perfekte Beispiel. Ich habe ein paar grundlegende Zend-y-Dienstprogramme baute ich auf getrennten Systemen. Auf meinem test-Plattform, die ich nur virtuellen host Sie alle mit je Ihren eigenen document-root. In der Regel habe ich Zugriff auf diese tools, über eine remote-web-browser, aber das erfordert, dass ich VPN auf dem system laufen, wie ich es nicht schaffen diese tools werden auf etwas mehr als ein Subnetz und nicht wirklich wollen, setzen Sie ein internet-facing site.
So kommt also android-Handys und Dinge wie bitweb server, erlaubt es Ihnen ein lighttpd, php und mysql in Formen heruntergespielt werden auf einem pocket Handy. Problem ist nur, es ist nicht wirklich eingerichtet zu sein, mächtig genug, um den virtuellen host auf android-Betriebssysteme.
Kein problem, es wird für basic-aliasing, also ich ziehe gerade alle Werkzeuge, die jeweils in Ihren eigenen sub-Verzeichnis auf meiner SD-Karte und verwenden lighttpd mod_alias Definitionen zu zeigen, um jeder, und erstellen Sie dann re-write-Regeln für jedes Unterverzeichnis. Aber das führte mich zu diesem post und andere wie Sie alle zu beheben, die statische urls, wies href="/irgendein/Pfad/zu/static/content"
Ich selbst hatte zu aktualisieren, einige urls zu den zend-tools, die absolute Pfade zu verwenden {Ansicht}->url () - Aufrufe statt.
Durch das hinzufügen der URL-Aufrufe, die vor dem statischen Inhalt und Verwendung der anzeigen-url () - Methode für den Aufruf von controller-Aktionen kann ich jetzt verschieben Sie den gesamten Zend MVC für alle unabhängigen Werkzeuge in ein beliebiges Verzeichnis ich will, und Sie führen Sie aus, wie tief im web-Baum, wie ich es möchte. Zend übernimmt den rest und alles was es braucht 2-3 richtig formatierte Einträge in der lighttpd conf-Datei.