Вы не задумываетесь над этим .... мышление - это хорошо!
Я лично использую Symfony 1.4 для кодирования, что решает подобные проблемы, но вы можете выбрать, чтобы оставаться стройными: -)
Я бы подумал, ОО (объектно-ориентированный).Создайте пользовательский класс.Затем сделайте вызовы, такие как UserFactory :: getCurrentUser () или User :: getCurrentUser (), которые будут возвращать зарегистрированный в данный момент пользовательский объект.Среди переменных-членов этого класса будет user_id.Однако вы сможете добавить дополнительные функции и данные в этот класс.
Помните, что думать в ОО означает использование абстрактных терминов, которые очень близки к проблемной области.Пользователь, Автомобиль, Заказ и т. Д. Вам не нужно быть конкретным, и вам не нужно включать всю доступную информацию в этот класс, чтобы она была «полной», какой бы она ни была.Включайте только те данные, которые вам нужны в данный момент (помните yagni ).Классы - это иллюзии конкретных вещей в реальном мире.Точно так же, как 3D-моделирование - это иллюзия реального мира.
Надеюсь, это поможет ...