Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Нужно создать глобальный объект.

собственно, есть небольшой класс, объект которого должен быть глобальным, т.е. чтобы его можно было использовать в любом php, как для страниц, так и для боксов.

Вопрос где это лучше сделать?


UP

Раз никто не ответил. Возможно не совсем ясно. В общем, есть класс, который должен конструироваться один раз во время авторизации пользователя и существовать все время сессии. Ну и соответственно быть доступным отовсюду.

Где его инициализировать?


Так, как написано, не пойдет.
Видимо, класс надо создавать при каждом вызове страницы сайта, если пользователь авторизован.
Все это делать надо в includes/top.php.
Чтобы был доступен, использовать global.


Блин...так я и сам знаю. Но в этом варианте оно не будет иметь смысла.
И все же ведь наверное можно вычислить первую загрузку определенной страницы после авторизации (например у меня после авторизации идет редирект в кабинет пользователя). Т.е. в файле top.php поместить код вида:
if(user_just_login)
{
$obj = new Obj();
}

или же после последующей загрузки top.php если это условие не будет верным (а оно естественно не будет) то объект будет уничтожен?


А в каком будет иметь смысл?


В общем, есть класс, который должен конструироваться один раз во время авторизации пользователя и существовать все время сессии.

Это Ваша постановка задачи не  имеет смысла.
Сессия работает во время вызова МНОГИХ страниц. Класс (или скорее объект) , который Вам нужен, работает только в пределах скрипта, то есть только на ОДНОЙ странице.
Поэтому надо создавать его при каждом вызове страницы.


А переменные такие как $_SESSION['customer_id'] тоже перезаписываются каждый раз?


тоже перезаписываются каждый раз?


Эти как раз представляют исключение из общего правила, так как  передаются от предыдущей страницы к следующей.


Ок. значит мне нужно таким же образом передавать объект. спасибо за ответ.


Источник



Copyright ShopOS