Когда я работал в процедурном программировании на PHP, у меня была бы страница входа, где будет создан и сохранен сеанс пользователя. Затем на каждой странице я просто отображал имя пользователя и получал необходимую мне информацию.Как мне создать и использовать класс пользователя?
Но я беспомощен, как бы вы это достигли в программировании объектов?
Таким образом, процедурный (login.php):
if ($_POST['password'] != '' && $_POST['username'] != '') {
// check if password&username combination exists in database etc.
$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $username;
}
Я предполагаю, что это будет сделано, как это в объектно-ориентированном программировании:
// include user class
if ($_POST['password'] != '' && $_POST['username'] != '') {
// check if password&username combination exists in database etc.
$user = new User();
$user->id = $userId;
$user->username = $username;
Но вот проблема: Где я могу создать сеанс? И этот объект не будет существовать вне этой страницы «login.php», так как я его создаю. Как я могу сделать эту информацию доступной повсюду?
И как вы получите информацию из базы данных, используя специальный класс (скажем, PDO), не помещая запросы в пользовательский класс?
Большое спасибо, я просто не могу понять структуру
Кроме ответы на приведенные ниже, если это будет частью более крупного веб-сайта с большим количеством различных файлов, я бы предположил, что вы запускаете каждое исполнение сценария путем автоматического добавления «основного файла», который позволяет настроить все, что вам нужно, например, инициировать пользовательский класс (так что вам не нужно переписывать код на каждой странице). Используйте флаг php auto_prepend_file, если вам разрешено использовать директивы apache, в противном случае используйте require/include в верхней части каждой страницы. – Felthragar