Ik zit met een raar include probleempje. Ik wil graag onafhankelijk van het aangeroepen bestand verder een include kunnen doen. Daarvoor gebruik ik include_path met ini_set().
Mijn directory structuur (het geheel staat in /var/www/framework/:
Ik include controller.php. Hiermee kan ik verschillende modules aanroepen. Dit gebeurt met:
Om te zorgen dat php de bestanden goed kan vinden stel ik in de controller een include_path aan:
Als ik nu een bestand 'test.php' aanmaak en deze 'controller.php' laat includen, kan 'controller.php' vervolgens de db module niet vinden. Toch heb ik een correct include pad toegevoegd.
Het werkt alleen als test.php in dezelfde currect working directory staat als controller.php (/var/www/framework dus eigenlijk). Maar ik begin mijn include_path vanaf root (/), dus wordt dit dan niet gecorrigeerd door php? Of moet ik nu serieus het verschil in pad tussen test.php en controller.php gaan meenemen in include_path?
Mijn directory structuur (het geheel staat in /var/www/framework/:
controller.php modules/ modules/access/ modules/access/access.php modules/db/ modules/db/db.php
Ik include controller.php. Hiermee kan ik verschillende modules aanroepen. Dit gebeurt met:
PHP:
1
| include_once 'modules/' . $modulesnaam . '/' . $bestand; |
Om te zorgen dat php de bestanden goed kan vinden stel ik in de controller een include_path aan:
PHP:
Hierop ziet mijn include_path er alsvolgt uit:1
| ini_set( 'include_path', dirname(__FILE__) . ':' . ini_get( 'include_path' ) ); |
/var/www/framework:.:/usr/share/php:/usr/share/pear
Het werkt alleen als test.php in dezelfde currect working directory staat als controller.php (/var/www/framework dus eigenlijk). Maar ik begin mijn include_path vanaf root (/), dus wordt dit dan niet gecorrigeerd door php? Of moet ik nu serieus het verschil in pad tussen test.php en controller.php gaan meenemen in include_path?