Puh, so viele Möglichkeiten und ich hab ehrlich gesagt nicht gerade viel Ahnung von Servern etc.
Ich habe zu euren Ideen mal ein wenig recherchiert und gehe einfach mal von oben nach unten durch.
Altrea wrote:Das ist schwer zu sagen ohne das Projekt zu kennen. Vorübergehend ist es vielleicht eine Lösung die include_paths projektbezogen per .htaccess Datei oder der PHP Funktion set_include_path() zu setzen.
Zur htaccess habe ich einen Artikel unter
http://httpd.apache.org/docs/current/ho ... ccess.html gefunden, der einem davon abrät, sie zu benutzen, außer man ist kein Admin und hat keinen Vollzugriff, denn sie sollen den Server arg verlangsamen. Stattdessen werden Directory-Tags empfohlen (siehe
http://httpd.apache.org/docs/current/mo ... #directory). Vom Prinzip her klingt das ja schon mal so, als ob man einfach für jedes Root-Verzeichnis eines Spiels (und dessen Unterverzeichnisse) ein eigenes Tag anlegen und dort drin die include-Pfade angeben kann, oder? Ich habe nur nicht verstanden, wo diese Tags hinkommen.
set_include_path() müsste man in jedes einzelne der Skripte einpflanzen, wenn ich das richtig verstanden habe. Das klingt so, als wenn es das Spiel auch arg verlangsamen würde, wenn jede einzelne Nutzeranfrage den include-path überschreibt. Das Ganze muss ja auch noch threadsicher bleiben.
Btw: Das Spiel ist schon älter, also gibt es keinerlei Objektorientierung im ganzen Projekt. Und was ich bisher zum Autoloader gefunden habe, war alles objektorientiert. Kann man den auch irgendwie ohne OO verwenden und wäre es ein großer Aufwand?
Das ganze schön nach MVC umzubauen, wäre er sehr hoher Aufwand und wird vielleicht später noch in Angriff genommen, aber vorerst wollen wir gerne erst mal kleine Änderungen testen.
Nobbie wrote:Man könnte mir VirtualHosts arbeiten und dort mit relativen Pfaden. Scheint mir im Moment das einfachste zu sein. Aber generell würde ich auch die Pfade aus der php.ini herausnehmen und in eine zentrale config.php legen. Dann bist Du ganz frei in den Möglichkeiten.
Wie ist das mit den VirtualHosts gemeint? Wenn man mit relativen Pfaden arbeiten, braucht man keinen DocumentRoot etc. mehr, oder?
Und wie handhabt man eine zentrale config.php? Wenn beide Spielversionen identisch sind abgesehen von ein paar Neuerungen in der Beta, dann müssen ja beide Versionen wissen, auf welchen Teil der Config sie zu greifen müssen.