Я привык к Java, цели c и немного с ++.Теперь я хочу использовать PHP для создания веб-сайта.Я создал несколько классов, но для простоты: 3 класса.
Account - DataMapper - DataManager
Это означает, что я могу получить учетную запись из базы данных.В DataManager я отслеживаю все вещи.Как и userId пользователя.
Дело в том, что обычно все установленные переменные остаются «установленными», но теперь я использую php, и мне нужно их хранить, используя сеанс.DataManager:
<? php
class DataManager
{
// Hold an instance of the class
private static $dm;
private $dataMapper;
private $dictationView;
private $userId;
private function __construct()
{
$this->dataMapper = new DataMapper();
$this->dictationView = new DictationView();
}
// The singleton method
public static function singleton()
{
if (!isset(self::$dm)) {
$c = __CLASS__;
self::$dm = new $c;
}
return self::$dm;
}
// Prevent users to clone the instance
public function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
function __get($prop) {
return $this->$prop;
}
function __set($prop, $val) {
$this->$prop = $val;
}
}
?>
Если я установлю userId в одноэлементном классе DataManager, в следующий раз, когда я вызову экземпляр класса DataManager, он не запомнит userId.Думаю, где-то мне придется иметь дело с сессией.Как правильно использовать сеансы ООП в DataManager?Спасибо!