Описание работы и исходные коды сайта
Описание работы и исходные коды сайта
Морда: СтандартнаяСераяЗеленая Главная / Портфель / Исходники / Описание работы и исходные коды сайта balin [Настройки]Описание работы и исходные коды сайтаПоследняя редакция: 17 октября 2003ВведениеТекущяя версия исходников этого сайта — бета, т.к. интерфейс классов, или API,
если хотите, могут меняться (надеюсь что уже не очень сильно),
от версии у версии. Я не несу никакой
ответственности за ущерб, который вам может причинить этот код.
По мере сил, этот код будет совершенствоваться, и надеюсь
достигнет хорошего качества. Хочу особо отметить, — я буду
отвечать только на интересные, конструктивные вопросы касающиеся
работы сайта, — остальные проигнорирую.Я специально
не публикую код для управления сайтом (административный
интерфейс), во-первых потому что он ещё хуже, чем код сайта,
и во-вторых хочется чтобы люди думали, а не брали
целиком готовые решения.В текущем виде, этот код работает только под веб-сервером Apache с использованием mod_rewrite.
Однако, я думаю, возможно использование его и на других
серверах, на которых есть возможность делать перенаправления для
несуществующих ресурсов на указанную страницу.Немного о классахВсе классы проекта хранятся (как можно догадаться) в каталоге classes. В нём находятся 2 подкаталога:commonoperatorsВ common у меня хранятся проектонезависимые классы, т.е. которые абсалютно идентичны для разных сайтов (угадайте каких :)), — XML рулит.В operators файлы с операторами и которые подключаются в классе MAIN которые в принципе тоже не зависят от проекта.Краткое описание установкиРаспаковать архив с исходниками прямо в корень тестового хоста/виртуального хоста, с работающем на нём mod_rewrite.В исходниках есть пример .htaccess если необходимо, подправить его соответственно вашим пожеланиям, например поправить путь к конфигурационному файлу auto.p.Создать (если ещё не создана) тестовую БД на MySQL сервере и восстановить дамп тестовой базы db_egoroff_test.sql включённой в архив, для требуемой БД. Это можно сделать, например с помощью графической утилиты MySQL-front.В конфигурационном auto.p, на который должна указывать SetEnv CGI_PARSER_CONFIG в вашем .htaccess, определить:Строку подключения к БД — $connect_string_mysqlПеременная определяющая рабочую СУБД — $db в нашем случае это MySQL, поэтому определять её так $db[mysql].Переменную $CLASS_PATH — таблица с путями по которым находятся классы проекта:
$CLASS_PATH[^table::create{path
/classes
/classes/operators
/classes/common
/classes/common/pclass}]
Зайти на тестовый хост/виртуальный хост и проверить работоспособность.Краткое описание работыНа сайте в идеале должна быть только одна html страница, на которую с помощью mod_rewrite или другим способом, перенаправляются все запросы к несуществующим файлам и каталогам:RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.html?uri=/$1 [QSA,L]
Как видно из вышеприведённого примера, все запросы перенаправляются на страницу index.html находящуюся в корне веб-пространства.Там же (в корне веб пространства), находится файл auto.p, в котором подключаются файлы классов для работы с БД, определяется метод @main[] осуществляющий соединение с БД и создающий объект класса URI (работа c URI). Далее c помощью только что созданного объекта в @main[] формируется поле $nId — идентификатор раздела, соответствующего запрошенному URL. И в конце вызывается метод @content[](формирующий html код страницы), определяемый в index.html.В методе @content[], с помощью метода @getPageClassName[] класса URI, объект которого был глобально сконструирован в auto.p, определяется какой класс необходимо подключить для формирования объекта страница ($objPage).
Объект страница создается на базе динамически подключаемых классов
(определяется по идентификатору определяемому в корневом auto.p), являющихся потомками класса pclass
(базовый класс объектов страница). Делается это подключение
с помощью виртуального конструктора или фабрики объектов — @objPageFactory[].Далее вызывается метод @html[] объекта страница, который собственно и выдаёт html код страницы. В index.html, ещё определяется метод @postprocess[] для некоторых задач постобработки.Исходные коды и документацияИсходные коды: sources.zip (Дата: 10.1.2004 Размер: 133.55 Kб)Документация на схему XML: schema_doc.zip (Дата: 17.10.2003 Размер: 176.09 Kб)В архив с исходниками включён файл, формирующий документацию по исходникам, — код описан в примере № 23. Для просмотра документации нужно зайти http://yourTestHost/docs/.Этот
код работает на парсере 3.1 и выше, проверял лично, так
что если не работает совсем ничего, проверьте версию парсера, если
она соответствует или выше указанной, то дело не в ней.ДополнительноОписание работы и исходные коды сайтаДиаграмма базы данныхПолезноеParser 3Parser.ruБазы данныхPostgreSQLmySQL.comXMLXMLXML Spy IDEГлавная / Портфель / Исходники / Описание работы и исходные коды сайта balin [Настройки]Информация о сервереАвторРегистрация/настройки
содержание | 2 | рецепты блюд
Используются технологии
uCoz