Wurzelverzeichnis dynamisch setzen
Hallo,
ich habe folgendes Problem.
Zum testen meines Projektes liegt der Code dazu unter
http://localhost/foo/
Auf dem produktiven Server wird das ganze dann natürlich mal unter
http://foo.de/
liegen.
Wie stelle ich es jetzt am geschicktesten an das ich die geänderten
Pfadangaben (z.B für include Dateien) nur an einer Stelle ändern muss?
Ich hab ja zunächst an eine Variable $root gedacht die z.B. in einer
Datei config.inc.php definiert wird und dann überall per global verfügbar
gemacht wird. Das scheint mir aber irgendwie noch nicht wirklich schön.
Vor allem weil ich ja trotzdem noch den Pfad zu eben dieser Datei
jedesmall ändern müsste.
Wie macht ihr so etwas?
Grüße,
--
Kai Timmer | Jabber-ID: kait [at] jabber.ccc.de
PGP-Key ID: 0x8295374E | Blog: http://www.kaitimmer.de
------------------------------------------------------
http://chemnitzer.linux-tage.de (1.-2. März 2008)
Re: Wurzelverzeichnis dynamisch setzen
Kai Timmer schrieb:
> Wie stelle ich es jetzt am geschicktesten an das ich die geänderten
> Pfadangaben (z.B für include Dateien) nur an einer Stelle ändern mu=
ss?
> Ich hab ja zunächst an eine Variable $root gedacht die z.B. in einer
> Datei config.inc.php definiert wird und dann überall per global verfü=
gbar
> gemacht wird. Das scheint mir aber irgendwie noch nicht wirklich schö=
n.
> Vor allem weil ich ja trotzdem noch den Pfad zu eben dieser Datei
> jedesmall ändern müsste.
>
> Wie macht ihr so etwas?
Ein paar Anregungen:
Config::rootPath(), $Config->rootURI(), dirname( __FILE__ )
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Wurzelverzeichnis dynamisch setzen
On 9 Jan., 00:38, Niels Braczek <nbrac... [at] freenet.de> wrote:
> Kai Timmer schrieb:
>
> > Wie stelle ich es jetzt am geschicktesten an das ich die geänderten
> > Pfadangaben (z.B für include Dateien) nur an einer Stelle ändern mus=
s?
> > Ich hab ja zunächst an eine Variable $root gedacht die z.B. in einer
> > Datei config.inc.php definiert wird und dann überall per global verf=
ügbar
> > gemacht wird. Das scheint mir aber irgendwie noch nicht wirklich schön=
..
> > Vor allem weil ich ja trotzdem noch den Pfad zu eben dieser Datei
> > jedesmall ändern müsste.
>
> > Wie macht ihr so etwas?
>
> Ein paar Anregungen:
>
> Config::rootPath(), $Config->rootURI(), dirname( __FILE__ )
>
> MfG
> Niels
>
> --
> |http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
> |http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
> | Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management |=
> ------------------------------------------------------------ ------
Hi, du kannst dir unter einer regulären wamp-Umgebung ziemlich leicht
einen virtuellen Host anlegen:
Beispiel xampp:
xampp/apache/conf/httpd.conf:
listen 80 raus
xampp/apache/conf/extra/httpd-vhosts.conf:
NameVirtualHost *:80
Listen *:80
<VirtualHost *:80>
ServerAdmin webmaster [at] dummy-host2.example.com
DocumentRoot pfad/zu/deinem/testverzeichnis/unterhalb/htdocs
ServerName deintestname.localhost
</VirtualHost>
Dann musst du den vhost noch anlegen, die Konfigurationsdatei findest
du unter
c:/windows/system32/drivers/etc/hosts
Da trägst du dann ein:
127.0.0.1 deintestname.localhost
Dann kannst du dein lokales Testverzeichnis über die url
http://deintestname.localhost erreichen, somit bleiben dann alle
absoluten Pfade gleich, wenn du das ganze Zeug auf deinen Webserver
überträgst.
Zusätzlich würde ich dann alle Pfadangaben absolut vom Webroot aus
verwalten, bspw. in einer Config-Datei:
$pfad_zu_bildern =3D "/data/myImages";
Falls du dann absolute Pfade vom Root des Dateisystem brauchst,
einfach ein $_SERVER['DOCUMENT_ROOT'] voranstellen. Dann hast du dir
die jeweilige systemspezifische Anpassung dorch auch noch gespart.
Ich hoffe, das hilft ein wenig weiter. Vlt gibts noch einen
einfacheren Weg, aber ich bin nicht ganz so firm was
Serverkonfiguration und so angeht ;)
vg
Re: Wurzelverzeichnis dynamisch setzen
Kai Timmer schrieb:
> Wie macht ihr so etwas?
relative Pfadangaben statt absolute.
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: Wurzelverzeichnis dynamisch setzen
Kai Timmer wrote:
> Wie macht ihr so etwas?
Es existiert bei mir im Projekt ein
PREPATH
Konstante. Diese wird zu Beginn des Programmes gesetzt.
define("PREPATH",".");
Und je nachdem, wie der Server aufgesetzt ist, zeigt PREPATH immer
relativ auf den Ursprungsort: Das kann Document-Root sein, kann aber
genauso auch ein Unterverzeichnis im Document-Root sein.
Bsp:
/project1/class/
/project1/php/
/project1/module/
/project1/index.php
/project2/class/
/project2/php/
/project2/module/
/project2/index.php
in jeder Index steht nun define("PREPATH",".");
Jeder include/require erfolgt mittels der PREPATH Variable:
include(PREPATH."/class/class_object1.php");
--
"Unterwerfung ist die einzige bequeme Antwort auf Autorit=C3=A4t"
Re: Wurzelverzeichnis dynamisch setzen
> Wie stelle ich es jetzt am geschicktesten an das ich die geänderten
> Pfadangaben (z.B für include Dateien) nur an einer Stelle ändern muss?
> Ich hab ja zunächst an eine Variable $root gedacht die z.B. in einer
> Datei config.inc.php definiert wird und dann überall per global verfügbar
> gemacht wird. Das scheint mir aber irgendwie noch nicht wirklich schön.
> Vor allem weil ich ja trotzdem noch den Pfad zu eben dieser Datei
> jedesmall ändern müsste.
Gar nicht. In meinen Projekten liegt immer im Anwendungs-Root eine
index.php5. Die wird ausgeführt und nur die, alles andere liegt drunter
und ist entsprechend leicht zu finden (relative Pfade).
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Re: Wurzelverzeichnis dynamisch setzen
Hadanite Marasek schrieb:
> Gar nicht. In meinen Projekten liegt immer im Anwendungs-Root eine
> index.php5. Die wird ausgeführt und nur die, alles andere liegt drunter
> und ist entsprechend leicht zu finden (relative Pfade).
warum nicht .php? :)
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: Wurzelverzeichnis dynamisch setzen
Christoph Herrmann schrieb:
> Hadanite Marasek schrieb:
>> Gar nicht. In meinen Projekten liegt immer im Anwendungs-Root eine
>> index.php5. Die wird ausgeführt und nur die, alles andere liegt
>> drunter und ist entsprechend leicht zu finden (relative Pfade).
>
> warum nicht .php? :)
Mein Provider unterstützt PHP4 und PHP5, und zumindest am Anfang war
*.php auf PHP4 gemappt.
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html