Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 14. April 2015 09:17
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Datei fileloc.php wird doppelt geladen ...
Zentraler Dreh- und Angelpunkt von CMSMS ist die index.php. Dort findet sich in der aktuellen Version in Zeile 23 folgender Eintrag
require_once($dirname.'/fileloc.php');
Abgesehen davon, dass
require_once(__DIR__.'/fileloc.php');
performanter wäre, besteht da wie im Topic beschrieben noch ein anderes Problem, was sich in Zeile 71 manifestiert
require_once($dirname.'/include.php');
Dort wird die ebenfalls im root-Verzeichnis befindliche Datei include.php eingebunden. Ok, schauen wir mal rein - auf Zeile 76 findet sich da folgender Eintrag
require_once($dirname.DIRECTORY_SEPARATOR.'fileloc.php');
Ähmm, hatten wir das nicht gerade? Was ist denn so wichtig daran, dass die Datei gleich 2x geladen werden muss?? Ok, schauen wir mal nach
define("CONFIG_FILE_LOCATION", dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config.php');
define("TMP_CACHE_LOCATION", dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'cache');
define("TMP_TEMPLATES_C_LOCATION", dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'templates_c');
Könnt ihr etwas erkennen? Ich nicht!
Abgesehen davon macht ein 3-Zeile mit einer Konstanten-Definition in einer separaten Datei nach meinem Verständnis nur sehr eingeschränkt Sinn.
Vorschlag zur Korrektur:
index.php - Zeile 23
require_once($dirname.'/fileloc.php');
ersetzen durch
define("CONFIG_FILE_LOCATION", __DIR__ . DIRECTORY_SEPARATOR . 'config.php');
define("TMP_CACHE_LOCATION", __DIR__ . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'cache');
define("TMP_TEMPLATES_C_LOCATION", __DIR__ . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'templates_c');
include.php - Zeile 76
require_once($dirname.DIRECTORY_SEPARATOR.'fileloc.php');
ersetzen durch
# require_once($dirname.DIRECTORY_SEPARATOR.'fileloc.php');
Neben der Fehlerkorrektur haben wir damit gleich mal so ganz nebenbei 5 Funktionen (3x dirname(), 2x require_once()) eingespart, die allesamt eine bestimmte Ausführungszeit, einen gewissen Overhead haben und auch Speicher belegen ... sicherlich nicht die Masse an Performance, die man hiermit gewinnt, aber ein "performanter" Kuchen besteht nun mal aus unendlich vielen Krümeln .
Offline
#2 15. April 2015 07:39
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: Datei fileloc.php wird doppelt geladen ...
Im SVN (trunk) scheint man dieses Problems bereits vor einem halben Jahr behoben zu haben. Schätze das wird erst mit der 2.0 veröffentlicht.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 15. April 2015 07:54
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Datei fileloc.php wird doppelt geladen ...
Hab ich auch schon gesehen - ist halt nur die Frage, warum es nicht schon in der 1.12 drin ist ...
Offline
#4 15. April 2015 15:27
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: Datei fileloc.php wird doppelt geladen ...
Die haben eine Agenda - schätze ich mal. Und die wird einfach stur abgearbeitet. Was kommt wann in welche Version? Ich kenne das aus meiner Firma. Die Agenda wird nach Dringlichkeit und nach Aufwand aufgebaut. Wie dringend/aufwendig etwas ist, wird im Team entschieden.
Ist der Plan einmal fertig, ist völlig egal, ob man dieses oder jenes noch hätte nebenbei beheben können. Wenn es für das nächste Release nicht auf dem Plan steht, wird es nicht gemacht bzw. kommt in einen extra Branch und wird erst im übernächsten Release veröffentlicht. Punkt. Ist zwar doof, aber dadurch behält man wenigstens die Übersicht und kann im Vorfeld genau sagen, was im nächsten Release drin ist und was nicht. So kann der Anwender auch planen. Ich bin mir nur nicht sicher, ob das "CMSms DEV Team" tatsächlich so arbeitet. Außerdem ist man dadurch nicht sehr flexibel, was insbesondere im Internet fatal sein könnte.
(OMG! Ich hatte tatsächlich das Wort mit T... geschrieben! )
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 15. April 2015 20:22
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Datei fileloc.php wird doppelt geladen ...
Die haben eine Agenda - schätze ich mal. Und die wird einfach stur abgearbeitet. Was kommt wann in welche Version?
Früher gabs das mal offiziell und trug den Namen Roadmap . Hab ich aber seit ner halben Ewigkeit nichts mehr dazu gesehen ...
Offline
#6 04. Mai 2015 06:59
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Datei fileloc.php wird doppelt geladen ...
Zentraler Dreh- und Angelpunkt von CMSMS ist die index.php. Dort findet sich in der aktuellen Version in Zeile 23 folgender Eintrag
require_once($dirname.'/fileloc.php');
Abgesehen davon, dass
require_once(__DIR__.'/fileloc.php');
performanter wäre, besteht da wie im Topic beschrieben noch ein anderes Problem, was sich in Zeile 71 manifestiert
require_once($dirname.'/include.php');
Dort wird die ebenfalls im root-Verzeichnis befindliche Datei include.php eingebunden. Ok, schauen wir mal rein - auf Zeile 76 findet sich da folgender Eintrag
require_once($dirname.DIRECTORY_SEPARATOR.'fileloc.php');
Ähmm, hatten wir das nicht gerade? Was ist denn so wichtig daran, dass die Datei gleich 2x geladen werden muss??
/install/upgrade.php
Zeile 20
require_once("../include.php");
Zeile 86:
require_once cms_join_path(CMS_BASE, 'include.php');
Wie der Name bereits nahelegt, kann der Wert einer Konstanten zur Laufzeit des Skripts nicht verändert werden
Langsam frage ich mich ernsthaft, wie bzw. womit man die angeblich hunderte Stunden Testzeit verbringt, wenn sich nicht einer die Mühe macht, mal den Code anzuschauen.
So einen Schietkram sehe sogar ich als Laie ...
Offline
#7 03. September 2018 16:14
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: Datei fileloc.php wird doppelt geladen ...
Hat das schonmal jemand erfolgreich probiert?
Ähmm, hatten wir das nicht gerade? Was ist denn so wichtig daran, dass die Datei gleich 2x geladen werden muss??
Denn mir ist gerade aufgefallen, dass durch diese Änderung das Backend nicht mehr funktioniert.
Das wird der Grund sein, warum das da zweimal drin steht.
Denn Front- und Backend teilen sich einige Dateien.
So z.B. auch die include.php.
D.h. wenn in der include.php die Konstante z.B. CONFIG_FILE_LOCATION nicht defniert wird (was mit require_once fileloc.php geschieht), können im Backend wichtige Teile nicht geladen werden. Im Backend wird ja nur die include.php eingebunden, aber nicht die index.php im root.
Und wenn man die Konstanten ausschließlich in der include.php definiert, dann hat man in der index.php im root das Problem, dass man einige Konstanten bereits vor der include.php braucht.
Selbes Problem beim Upgrade.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
Seiten: 1