PHP expert |
|
Ik ben wat aan het prutsen geslaagd met php en namespaces. Vreemd genoeg pakt hij niet de gewone functies uit de standaardlibrary, iets wat hij mijn inziens gewoon moet doen met een \ er voor.
<?php
namespace Voetbal\Data;
require_once '/Utility/DataException.php';
abstract class DataBasic {
private static $db = null;
private $dsn = "mysql:host=localhost;dbname=mvv_nieuw";
private $user = "root";
private $pass = "";
protected function Connection() {
if(self::$db==null) {
try {
$pdo = new \PDO($this->dsn, $this->user, $this->pass);
self::$db = $pdo;
}
catch(\PDOException $e) {
throw new \Voetbal\Utility\DataException($e);
}
}
return self::$db;
}
protected abstract function Add($data);
protected abstract function Modify($data);
protected abstract function Remove($data);
protected abstract function GetAll();
}
?>
<?php namespace Voetbal\Data; require_once '/Utility/DataException.php'; abstract class DataBasic { private $dsn = "mysql:host=localhost;dbname=mvv_nieuw"; private $user = "root"; private $pass = ""; protected function Connection() { if(self::$db==null) { try { $pdo = new \PDO($this->dsn, $this->user, $this->pass); self::$db = $pdo; } catch(\PDOException $e) { throw new \Voetbal\Utility\DataException($e); } } return self::$db; } protected abstract function Add($data); protected abstract function Modify($data); protected abstract function Remove($data); protected abstract function GetAll(); } ?>
Door \PDO() te doen i.p.v. PDO() zou hij de juiste functie moeten vinden. Ik krijg nu echter de volgende error:
Citaat: Fatal error: Class 'VoetbalDataPDO' not found in D:VoetbalDataMenuItems.php on line 24
Inderdaad \PDO() staat niet in die namespace, maar die moet ie ook helemaal niet pakken! Wat doe ik verkeerd? Of kan ik dat namespaces-gebeuren beter laten liggen tot PHP 10.0?
|