Ik heb een heel simpel hobby-CMSje gebouwd in PHP dat werkt met verschillende modules (bijvoorbeeld een module "gebruiker"). Elke module is een directory gevuld met een aantal PHP- en templatebestanden waarbij er één bestand modulesettings.xml aanwezig is. Nu wil ik graag dat het systeem zelf "ziet" welke modules er aanwezig zijn en deze netjes in een menu toont. Dat lukt nu op zich, maar ik vraag me af of het niet netter kan.
Op dit moment doe ik het als volgt:
Ik kijk dus recursief in de directory "__modules" en zet vervolgens alle paden naar de verschillende modulesettings.xml bestanden in een array. Werkt prima, maar het voelt een beetje slordig om alle bestanden af te gaan en vervolgens per bestand te checken of het de goede is ($pathParts['basename'] == 'modulesettings.xml'). Daarom vroeg ik mij af: is er geen elegantere oplossing?
Voor de duidelijkheid: ik ben geen enorme PHP-pro, dus het zou goed kunnen dat er iets enorm voor de hand liggends is wat ik over het hoofd zie.
Op dit moment doe ik het als volgt:
PHP:
1
2
3
4
5
6
7
8
9
| // Walk through module-directories and find setting-files $modulesettingsFiles = array(); $it = new RecursiveDirectoryIterator("./__modules"); foreach (new RecursiveIteratorIterator($it) as $file){ $pathParts = pathinfo($file); if ($pathParts['basename'] == 'modulesettings.xml'){ $modulesettingsFiles[] = (string)$file; } } |
Ik kijk dus recursief in de directory "__modules" en zet vervolgens alle paden naar de verschillende modulesettings.xml bestanden in een array. Werkt prima, maar het voelt een beetje slordig om alle bestanden af te gaan en vervolgens per bestand te checken of het de goede is ($pathParts['basename'] == 'modulesettings.xml'). Daarom vroeg ik mij af: is er geen elegantere oplossing?
Voor de duidelijkheid: ik ben geen enorme PHP-pro, dus het zou goed kunnen dat er iets enorm voor de hand liggends is wat ik over het hoofd zie.