Hallo,
ich habe eine Klasse erstellt für den Aufbau einer Datenverbindung, welche aus einer anderen Klasse heraus aufgerufen wird bzw. eine statische Methode wird aufgerufen.
Auf meinem Oflinesystem (XAMPP unter Windows 10 mit PHP 5.6.) läuft das Ganze auch fehlerfrei.
Sobald ich das Ganze dann auf unseren Linux Server (SUSE SLES mit PHP 5.5.x) ausführen will, kommt did Fehlermeldung, das die Klasse App\\Database\\Connection\ConnectDB nicht gefunden werden kann. Das Verzeichnis App wird über PSR-4 geladen. Alle anderen Funktionalitäten mit anderen Klassen funktionieren - nur diese eine nicht.
Hier mal der Code ConnectDB.php:
Aufgerufen wird sie von hier (Auth.php):
Der Fehler wird hier angezeigt in der Errorlog des Apache - $instance = ConnectDB::getInstance($this->container['db']);
Meldung: PHP Fatal error: Class 'App\\Database\\Connection\\ConnectDB' not found in ...
Ich kann mir das nicht erklären, da andere Klassen funktionieren. Liegt es daran, dass ich eine statische Methode aufrufe?
Ich würde mich sehr über Eure Hilfe freuen
Gruß
Reiner
ich habe eine Klasse erstellt für den Aufbau einer Datenverbindung, welche aus einer anderen Klasse heraus aufgerufen wird bzw. eine statische Methode wird aufgerufen.
Auf meinem Oflinesystem (XAMPP unter Windows 10 mit PHP 5.6.) läuft das Ganze auch fehlerfrei.
Sobald ich das Ganze dann auf unseren Linux Server (SUSE SLES mit PHP 5.5.x) ausführen will, kommt did Fehlermeldung, das die Klasse App\\Database\\Connection\ConnectDB nicht gefunden werden kann. Das Verzeichnis App wird über PSR-4 geladen. Alle anderen Funktionalitäten mit anderen Klassen funktionieren - nur diese eine nicht.
Hier mal der Code ConnectDB.php:
PHP-Code:
namespace App\DataBase\Connection;
class ConnectDB
{
// Hold the class instance.
private static $instance = null;
private $conn;
private $host;
private $user;
private $pass;
private $name;
protected static $container;
// The db connection is established in the private constructor.
private function __construct()
{
$this->host = self::$container['host'];
$this->user = self::$container['username'];
$this->pass = self::$container['password'];
$this->name = self::$container['database'];
$this->conn = new \PDO("mysql:host={$this->host};
dbname={$this->name}", $this->user,$this->pass,
array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
public static function getInstance($container)
{
self::$container = $container;
if(!self::$instance)
{
self::$instance = new ConnectDB();
}
return self::$instance;
}
public function getConnection()
{
return $this->conn;
}
}
PHP-Code:
namespace App\Auth;
use App\DataBase\Connection\ConnectDB;
class Auth
{
protected $container;
public function __construct($container)
{
$this->container = $container;
}
public function getDataBase(){
//var_dump(ConnectDB::class);
//die();
$instance = ConnectDB::getInstance($this->container['db']);
$conn = $instance->getConnection();
var_dump($conn);
die();
}
}
Meldung: PHP Fatal error: Class 'App\\Database\\Connection\\ConnectDB' not found in ...
Ich kann mir das nicht erklären, da andere Klassen funktionieren. Liegt es daran, dass ich eine statische Methode aufrufe?
Ich würde mich sehr über Eure Hilfe freuen
Gruß
Reiner
Kommentar