Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 14. April 2015 09:17

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.825
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 big_smile.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#2 15. April 2015 07:39

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.073

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.

Offline

#3 15. April 2015 07:54

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.825
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 ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#4 15. April 2015 15:27

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.073

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! ops )

Offline

#5 15. April 2015 20:22

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.825
Webseite

Re: Datei fileloc.php wird doppelt geladen ...

NaN schrieb:

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 wink. Hab ich aber seit ner halben Ewigkeit nichts mehr dazu gesehen ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#6 04. Mai 2015 06:59

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.825
Webseite

Re: Datei fileloc.php wird doppelt geladen ...

cyberman schrieb:

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

Zeile 86:

require_once cms_join_path(CMS_BASE, 'include.php');
http://php.net/manual/de/language.constants.php schrieb:

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 sad ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline