Где хранить сообщения об ошибках / информацию для пользователя в PHP?

Мне было интересно, как лучше всего хранить сообщения для пользователя в PHP. С сообщениями я имею в виду что-то вроде

Аутентификация прошла успешно

или же

Пожалуйста, введите действительный адрес электронной почты

В настоящее время я работаю над проектом, где они хранятся в $_SESSION переменная, но я не думаю, что это хорошее решение.

Краткое объяснение, как я делаю это в данный момент (Класс Message был создан мной)

$_SESSION["msg"][] = new Message("...");

а также

foreach ( $_SESSION ["msg"] as $msg ) :
echo $msg->getText();
endforeach;

unset ( $_SESSION ["msg"] );

Это просто упрощенная версия полного кода, но вы должны понять.

РЕДАКТИРОВАТЬ: Забыл сказать, что я работаю с платформой MVC и хочу отделить логику от вывода.

0

Решение

Можно только размышлять о природе / содержании вашего Message Учебный класс. Тем не менее, здесь; была предпринята попытка смоделировать макет класса с именем Message; также использование в вашем скрипте просмотра было показано ниже класса. Будь уверен что $_SESSION активен в обоих сценариях …. Возможно, это может пролить некоторый новый свет на то, как действовать в вашем уникальном случае:

    <?php

//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE  || session_id() == '') {
session_start();
}

class Message {

protected $msg;

public function __construct() {
if(!isset($_SESSION['msg'])){
$_SESSION['msg']    = array();
}
}

public function setText($message){
if(!in_array($message, $_SESSION['msg'])){
$_SESSION['msg'][]  = $message;
}
}

public function getText(){
return "Some Logic for getting Message";
}
}
?><?php
// INSIDE OF YOUR VIEW SCRIPT; AT THE VERY TOP, ENABLE SESSION AS WELL:

//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE  || session_id() == '') {
session_start();
}

// THEN LOOP THROUGH THE SESSION DATA FOR MESSAGES TO BE DISPLAYED
$msg    = new Message();
if(isset($_SESSION['msg'])) {
foreach ($_SESSION ["msg"] as $msg) :
echo $msg->getText();
endforeach;

unset ($_SESSION ["msg"]);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]