![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Начал писать свою систему. Принцип работы.
Сначала подгружается ядро - core.php В этом файле 1. Создаётся сессия. 2. Создаются экземпляры рабочих классов ядра $_SESSION['DB'] - класс для работы с базой данных $_SESSION['MOD'] - класс для работы с модулями $_SESSION['TEMPLATE'] - класс для работы темплейтами $_SESSION['USER'] - класс для работы с пользователями, привилегии, создание, удаление.... $_SESSION['MAIN_MOD'] - класс общего шаблона, модуль который соединяет уже существующии в страницу 3. Происходит инициализация активных модулей. Модули храниятся в $_SESSION[имя модуля] 4. Присваивание пользователю ID=0 (GUEST) У любого модуля должны быть обшие методы, которые он наследует от общего класса item. 1. destroy() - уничтожает экземпляр класса, все сессионные переменные, выгружает классы используемые модулем 2. setVars() - задаёт экземпляру модуля переменные, хранимые в $_SESSION['STACK'], после чего очищает его 3. getProp() - возвращает свойства модуля. Модуль берёт нужные переменные из $_SESSION['STACK'] обрабанывает, выводит в форматированом виде, скорее всего вв виде таблицы, далее общий шаблонный модуль собирает из кусочков модулей саму страницу. На этом пока остановился. Мне интерестны ваши замечания, или предложения по поводу такой структуры. -------------------- ГЫ... |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Что никто не может ничего сказать? Ну кто-нидь... Я впервые занимаюсь написанием ядра, нужна помощь и замечания на стадии зачатка, чтобы потом весь код не переделывать... Pls/
Добавлено @ 00:17 Что никто не может ничего сказать? Ну кто-нидь... Я впервые занимаюсь написанием ядра, нужна помощь и замечания на стадии зачатка, чтобы потом весь код не переделывать... Pls. -------------------- ГЫ... |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Слушай, а зачем тебе все это дело в сессиях хранить?
Основной принцип я думаю ты понял. Класс для работы с юзерами я себе всегда представлял как поддгружаемый ядром глобальный модуль. Ну а так вообще почитай форум Vingrad CMS, в наших проектах, может чего усвоишь необходимого. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
В принципе это удобно... -------------------- ГЫ... |
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
Намного удобнее хранить эту информацию в БД, а юзеру кидать идентификатор сессии... -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Экземпляры классов? |
|||
|
||||
| Alone |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Чтобы разумно использовать сериализованые в сессии объекты - необходимо иметь механизм проверки.
Например: Что делать? - создать объект или взять его из сессии... А если его там нет? А если есть но не нужен?... И таких "если" может быть достаточно. Мой совет - не храни экземпляры класов в сессии. Лучше продумай вариант, кто и когда должен быть создан и насколько он нужен. Так же продумай области видимости объектов, чтоб у тебя не вышло, что какой нить жирный класс будет клепать своих клонов где не попадя...
Смотри, ты сам выбрал решение. Если на стадии старта ядра - у тебя создаются все минимально необходимые объекты, то кто тебе мешает там где нужно, помещать их в область видимости (global $xxx) и использовать... пример: core.php
Далее, в подгруженных файлах ты без проблем можешь использовать все чего понасоздавал. на мой взгляд, необходимость использовать сессию возникает тогда, когда нужно произвести операцию в несколько этапов, с сохранением промежуточных (между этапами) данных. Например сложная регистрация в 5-6 шагов, с откатами на предыдущее состояние... -------------------- |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |