2012-04-13 9 views
0

Ich versuche, eine Form eines CMS zu Lernzwecken zu machen. Jetzt möchte ich herausfinden, wie man automatisch eine Menge von Klassen in bestimmte Dateien einfügt. Ich möchte eine einzelne Codezeile schreiben, die alle Klassen enthält, die ich möchte.Joomla _JEXEC wie Funktionalität

<?php include(realpath($_SERVER["DOCUMENT_ROOT"])."/lib/php/session.inc.php"); 

Essentials::getDOCTYPE(); 
Essentials::getHeader(); 

Dies ist der Anfang meiner Indexdatei aussieht. Wie kann ich diese Sitzungsdatei automatisch hinzufügen? Von dem, was ich verstehen kann wissen, dass _JEXEC in Joomla eine benutzerdefinierte Joomla-Sitzung definiert, und dann sofort nach dieser Verwendung ein $ this-> baseURL() verwendet wird, was bedeutet, dass es eine Klasse gibt, die irgendwie benutzt wurde. Es gibt jedoch kein Include ("myclass.php");

Antwort

1

Die _JEXEC in Joomla-Dateien macht nichts so schlau wie Sie sich vorstellen. Es ist einfach eine Konstante, die im Einstiegspunkt des Hauptskriptes (index.php) definiert ist. Seine Existenz wird dann in nachfolgenden Dateien als Sicherheitsvorkehrung getestet, um den direkten Zugriff auf Dateien zu verhindern.

Wenn _JEXEC nicht definiert ist, sind Sie nicht über index.php reingekommen - wenn Sie index.php direkt angefordert haben oder stillschweigend in index.php über mod_rewrite umgeleitet wurden, wird _JEXEC definiert, wenn nicht Sie müssen direkt auf die andere Datei zugegriffen haben und das Skript wird mit einem Nachrichtentyp "direkter Zugriff ist nicht erlaubt" beendet.

Ich glaube, die Funktionalität, über die Sie sprechen, kann mit einer Suche basierend auf den Wörtern "php autoload" gefunden werden, wobei Sie eine Funktion erstellen können, die in bestimmten Ordnern nach Dateien mit Namen sucht, die Muster entsprechen, die den Namen enthalten der Klasse, die Sie zu instanziieren versuchen, die aber noch nicht geladen wurde.

+0

Diese Autoload-Funktion schien interessant zu sein, ich bin darauf gestoßen, ich werde weiter darauf eingehen. Vielen Dank für die Hilfe. –