Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структуа Ядра системы, Что нужно ещё? 
:(
    Опции темы
AntonioBanderaz
  Дата 23.9.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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'] обрабанывает, выводит в форматированом виде, скорее всего вв виде таблицы, далее общий шаблонный модуль собирает из кусочков модулей саму страницу.
На этом пока остановился. Мне интерестны ваши замечания, или предложения по поводу такой структуры.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AntonioBanderaz
Дата 26.9.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Что никто не может ничего сказать? Ну кто-нидь... Я впервые занимаюсь написанием ядра, нужна помощь и замечания на стадии зачатка, чтобы потом весь код не переделывать... Pls/
Добавлено @ 00:17
Что никто не может ничего сказать? Ну кто-нидь... Я впервые занимаюсь написанием ядра, нужна помощь и замечания на стадии зачатка, чтобы потом весь код не переделывать... Pls.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
IZ@TOP
Дата 4.10.2005, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Слушай, а зачем тебе все это дело в сессиях хранить?

Основной принцип я думаю ты понял.
Класс для работы с юзерами я себе всегда представлял как поддгружаемый ядром глобальный модуль.

Ну а так вообще почитай форум Vingrad CMS, в наших проектах, может чего усвоишь необходимого.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
AntonioBanderaz
Дата 5.10.2005, 03:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата(IZ @ 4.10.2005, 11:11)
Слушай, а зачем тебе все это дело в сессиях хранить?

В принципе это удобно...


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Master
Дата 5.10.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: нет
Всего: 10



Цитата(AntonioBanderaz @ 5.10.2005, 04:41)
В принципе это удобно...

Намного удобнее хранить эту информацию в БД, а юзеру кидать идентификатор сессии...


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Guest
Дата 5.10.2005, 17:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Master @ 5.10.2005, 11:12)
Намного удобнее хранить эту информацию в БД, а юзеру кидать идентификатор сессии...

Экземпляры классов?
  Вверх
Alone
Дата 6.10.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Чтобы разумно использовать сериализованые в сессии объекты - необходимо иметь механизм проверки.
Например:
Что делать? - создать объект или взять его из сессии... А если его там нет? А если есть но не нужен?... И таких "если" может быть достаточно.
Мой совет - не храни экземпляры класов в сессии. Лучше продумай вариант, кто и когда должен быть создан и насколько он нужен. Так же продумай области видимости объектов, чтоб у тебя не вышло, что какой нить жирный класс будет клепать своих клонов где не попадя...
Цитата
В этом файле
1. Создаётся сессия.
2. Создаются экземпляры рабочих классов ядра

Смотри, ты сам выбрал решение.
Если на стадии старта ядра - у тебя создаются все минимально необходимые объекты, то кто тебе мешает там где нужно, помещать их в область видимости (global $xxx) и использовать...
пример:

core.php
Код

<?
require_once("defines.php");
require_once("user.class.php");
require_once("db.class.php");
require_once("templates.class.php");

$user=new User(GUEST);
$db=new DB("pgsql", "db_name", "db_host", "login", "passwd");
$tpl=new Templates();

include("file.php");
?>


Далее, в подгруженных файлах ты без проблем можешь использовать все чего понасоздавал.
на мой взгляд, необходимость использовать сессию возникает тогда, когда нужно произвести операцию в несколько этапов, с сохранением промежуточных (между этапами) данных.
Например сложная регистрация в 5-6 шагов, с откатами на предыдущее состояние...



--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.