include vraagje
Hallo,
Kort vraagje. Als ik vanuit mijn index.php een bestand wil includen dat buiten de www map ligt, maakt het dan verschil uit of ik het bestand op deze manier include:
1) include '../private/mijnmap/mijnbestand.php'; (relatief)
of op deze manier?
2) include '/data/var/domains/private/mijnmap/mijnbestand.php'; (absoluut)
Graag jullie reacties.
Kort vraagje. Als ik vanuit mijn index.php een bestand wil includen dat buiten de www map ligt, maakt het dan verschil uit of ik het bestand op deze manier include:
1) include '../private/mijnmap/mijnbestand.php'; (relatief)
of op deze manier?
2) include '/data/var/domains/private/mijnmap/mijnbestand.php'; (absoluut)
Graag jullie reacties.
Gewijzigd op 30/01/2012 14:51:14 door Ozzie PHP
Gesponsorde koppelingen:
Het maakt niet uit. Als beide paden werken zal er geen verschil optreden. Ik zou persoonlijk de relatieve route pakken, scheelt qua teksten. Maar wat ik niet snap is dit: ../../ zou dus zijn: domains/www/ welke alsnog je publieke map is.
M H, dat heeft niks met de vraag te maken.
Persoonlijk include ik altijd 1 bestand met standaard paden en dan verder via een constante.
Bijvoorbeeld:
include_once(CLASS_PATH.'mijnclassbestand.php');
Daarbij gebruik dan wel het absolute pad, hierbij kan ik makkelijk de paden aanpassen bij bijvoorbeeld een nieuwe locatie.
Persoonlijk include ik altijd 1 bestand met standaard paden en dan verder via een constante.
Bijvoorbeeld:
include_once(CLASS_PATH.'mijnclassbestand.php');
Daarbij gebruik dan wel het absolute pad, hierbij kan ik makkelijk de paden aanpassen bij bijvoorbeeld een nieuwe locatie.
Als je deze constante verwerkt in chdir(), weet je zeker dat je altijd goed zit.
Deze code zou je er in principe van moeten verzekeren dat je altijd met de goede paden werkt, en je de config niet hoeft aan te passen:
Let op dat deze code dus wel in je index.php moet.
Deze code zou je er in principe van moeten verzekeren dat je altijd met de goede paden werkt, en je de config niet hoeft aan te passen:
Let op dat deze code dus wel in je index.php moet.
@Merijn: sorry, was puur een voorbeeldje. Je hebt gelijk. Ik heb het aangepast.
Maar de vraag is dus... meer algemeen... is er een verschil of je een pad relatief of absoluut include? Is het een bijvoorbeeld sneller dan het ander?
Maar de vraag is dus... meer algemeen... is er een verschil of je een pad relatief of absoluut include? Is het een bijvoorbeeld sneller dan het ander?
Ozzie PHP op 30/01/2012 14:54:11:
is er een verschil of je een pad relatief of absoluut include? Is het een bijvoorbeeld sneller dan het ander?
Een pad is alleen een locatie bepaling... Relatief of absoluut maakt niet uit.
Als je van Amsterdam naar Groning wilt, maakt het uit welke weg je neemt?
Ik denk het niet, als je er maar komt.
In theorie zal het absolute pad sneller zijn, daar tegenover kan je mogelijk de prijs moeten betalen als _SERVER["ROOT"] wijzigt, waar je in geval van een relatief pad geen probleem hebt.
Als je je weer iets afvraagt of 'A' sneller is dan 'B', bouw dan even een testje. Dan ben je er snel achter.
Dankjewel Jim. Maar als ik van Amsterdam naar Groningen ga... en onderwater doet ie dat via New York, dan zal er wel verschil in zitten :)
Maar het gaat me niet alleen om snelheid, maar ook om de vraag of het een wellicht verstandiger / handiger is dan het andere.
Die veranderende root had ik nog niet bij stilgestaan. Dat is dus zeker een hele goede tip. Zou het dan kunnen zijn dat als mijn site bij een shared host staat en die ineens besluit om de mappenstructuur te veranderen dat het dan niet meer werkt? Ja, nu je het zegt.. dat zou inderdaad kunnen. Dus in dit geval kan ik dan beter een relatief pad gebruiken.
Maar het gaat me niet alleen om snelheid, maar ook om de vraag of het een wellicht verstandiger / handiger is dan het andere.
Die veranderende root had ik nog niet bij stilgestaan. Dat is dus zeker een hele goede tip. Zou het dan kunnen zijn dat als mijn site bij een shared host staat en die ineens besluit om de mappenstructuur te veranderen dat het dan niet meer werkt? Ja, nu je het zegt.. dat zou inderdaad kunnen. Dus in dit geval kan ik dan beter een relatief pad gebruiken.
Ja en al zou hij onderwater via New York gaan, dan merk je dat toch niet.
Misschien staat al jou data op een NAS in Ijsland, terwijl je server in Nederland wordt gehost..., who knows???
Misschien wordt er binnen het pad wel 30 symbolic-links gebruikt..., daarvoor zijn de LVM's en die moeten dat optimaal doen. Daar kan je niets aan doen.
Jou doel is 'locatie', en ik denk dat een relatief-pad een goed idee is. Misschien wel relatief v.a _SERVER["ROOT"];
Misschien staat al jou data op een NAS in Ijsland, terwijl je server in Nederland wordt gehost..., who knows???
Misschien wordt er binnen het pad wel 30 symbolic-links gebruikt..., daarvoor zijn de LVM's en die moeten dat optimaal doen. Daar kan je niets aan doen.
Jou doel is 'locatie', en ik denk dat een relatief-pad een goed idee is. Misschien wel relatief v.a _SERVER["ROOT"];
Oké, thanks!
- Jim - op 30/01/2012 15:55:17:
_SERVER["ROOT"];
Bedoel je hier $_SERVER['DOCUMENT_ROOT'] mee?



