include/require

include/require

am 09.07.2006 13:44:37 von Xaradas

Hallo,

ich habe eine fertige Applikation. Nun möchte ich eine Erweiterung
schreiben, die auf die Klassen zugreift. Während der Entwicklung soll
die Erweiterung in einem Unterverzeichnis liegen und ich kann mit ".."
auf das Verzeichnis verweisen. Später soll das Addon allerdings frei im
Dateisystem bewegbar sein und ich möchte dann nicht in jeder Datei die
include/require Pfade ändern müssen. Es muß auch möglich sein, die
notwendigen Klassen später mit der Erweiterung auf einen externen Server
zu kopieren.

Wie löse ich das am geschicktesten?

Gruß,
Oliver

Re: include/require

am 09.07.2006 14:05:46 von Gregor Kofler

Oliver Benning meinte:

> ich habe eine fertige Applikation. Nun möchte ich eine Erweiterung
> schreiben, die auf die Klassen zugreift. Während der Entwicklung soll
> die Erweiterung in einem Unterverzeichnis liegen und ich kann mit ".."
> auf das Verzeichnis verweisen. Später soll das Addon allerdings frei im
> Dateisystem bewegbar sein und ich möchte dann nicht in jeder Datei die
> include/require Pfade ändern müssen. Es muß auch möglich sein, die
> notwendigen Klassen später mit der Erweiterung auf einen externen Server
> zu kopieren.
>
> Wie löse ich das am geschicktesten?

Vielleicht mit
http://at.php.net/set_include_path


Gregor

--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum

Re: include/require

am 09.07.2006 14:22:13 von Sven Drieling

Oliver Benning wrote:

Hallo,

> Später soll das Addon allerdings frei im
> Dateisystem bewegbar sein und ich möchte dann nicht in jeder Datei =
die
> include/require Pfade ändern müssen.

Frei verschiebbar und Pfade nicht ändern passt nicht zusammen.
=20
Eventuell hilft eine Anpassung des include_path zur Laufzeit weiter
(ini_set(), ini_get()) oder eine Kombination aus __FILE__ und dirname(=
).
=20
Aber zumindest müsste spätestens bei der Installation festgelegt w=
erden
wo sich allgemein zu includierende Dateien befinden, damit ein Anpasse=
n
der Pfade nicht mehr nötig ist. Danach die Dateien weiterhin frei
verschieben zu wollen ginge dann nur noch mit Anpassung der Pfade oder=

dem Durchsuchen des kompletten Dateisystems - letzteres braucht zu vie=
l
Zeit.


tschuess
[|8:)
--=20
PHP 5: Hilfreiche Fehlermeldungen mit odebugger von Johan Barbier
http://www.sven-drieling.de/diary/2006/07/05/PHP_odebugger.h tml

Re: include/require

am 09.07.2006 21:26:53 von Irmgard Schwenteck

Hallo

Oliver Benning schrieb:
> die Erweiterung in einem Unterverzeichnis liegen und ich kann mit ".."
> auf das Verzeichnis verweisen. Später soll das Addon allerdings frei im
> Dateisystem bewegbar sein und ich möchte dann nicht in jeder Datei die
> include/require Pfade ändern müssen. Es muß auch möglich sein, die
> notwendigen Klassen später mit der Erweiterung auf einen externen Server
> zu kopieren.

Ich hab in jeder Datei _einen_ relativen Verweis auf das
Wurzelverzeichnis der website:
require('../incpath.php');

in incpath.php steht das, was grad gebraucht wird:

if ($HTTP_HOST=='meinpc' ) {
ini_set('include_path', 'C:\Inetpub\wwwroot\websites\project\inc');
}
else {
ini_set('include_path', $_SERVER['DOCUMENT_ROOT'].'/inc');
}

Wenn man zum Entwickeln auch einen Apache hat, braucht es nur eine Zeile.

Gruß
Irmgard