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)
Kai Timmer [ Di, 08 Januar 2008 23:41 ] [ ID #1902999 ]

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 =
|
------------------------------------------------------------ ------
Niels Braczek [ Mi, 09 Januar 2008 00:38 ] [ ID #1903001 ]

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
johannes.heinen [ Mi, 09 Januar 2008 11:38 ] [ ID #1903823 ]

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/
Christoph Herrmann [ Mi, 09 Januar 2008 15:32 ] [ ID #1903830 ]

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"
Rainer Hinz [ Mi, 09 Januar 2008 18:18 ] [ ID #1903833 ]

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
Hadanite Marasek [ Do, 10 Januar 2008 20:19 ] [ ID #1904846 ]

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/
Christoph Herrmann [ Do, 10 Januar 2008 20:23 ] [ ID #1904847 ]

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
Hadanite Marasek [ Fr, 11 Januar 2008 00:25 ] [ ID #1904853 ]
PHP » de.comp.lang.php.misc » Wurzelverzeichnis dynamisch setzen

Vorheriges Thema: pdf-Datei mit php bearbeiten
Nächstes Thema: Probleme mit Variablenvariablen