Hallo,erstmal die der betroffende Code. (Die "\" werden durch den BBCode aus den Namespaces entfernt,daher die Kommentare dahinter) PHP-Version : 5.3
PHP-Code:
// index.php
function __autoload($ClassName)
{
$filename = $ClassName.'.php' ;
require_once $filename;
}
// administration\klassen\db\benutzerdaten.php
namespace administrationklassendb; // administration\klassen\db
class benutzerdaten
{
protected $DB=null;
function __construct()
{
$this->DB = new SQL(__CLASS__);
}
// administration\klassen\db\SQL.php
namespace administrationklassendb; // administration\klassen\db
class SQL
{
private $Connect = null;
private $Table = '';
function __construct($table)
{
$this->Connect = new mysqli('Verbindungparameter');
$this->Table=$table;
}
Nun zu meinem Poblem:
Über die Namespaces und damit verbundene Ordnerstruktur ist es mir leicht möglich meine eigenen Klassen mittels Autoloader zu laden.
Das Problem stellen aber externe Klassen wie hier z.B. mysqli dar. Der Autoloader versucht im Contructor in der SQL.php mittels
PHP-Code:
$this->Connect = new mysqli('Verbindungparameter');
die Datei "administration\klassen\db\mysqli.php" zu laden, welche natürlich nicht existiert.
Nun stellt sich das Problem wie ich die Klasse laden kann ohne das der Autoloader anspring.
Ich hoffe ihr könnt mit meiner Problembeschreibung etwas anfangen.
Mfg Daniel