1. Новые складчины

    23.03.2017: Теоретический видео курс гадания на картах Таро

    20.03.2017: [Новый поток] Женская система тайм-менеджмента «Успеваю все»

    19.03.2017: INSTASOFT 3.4.3.5

    16.03.2017: Л. Питеркина. Март 2017. Даосские практики для личного благополучия

    15.03.2017: Генеративный коучинг от основателей

    05.03.2017: К. Бордунос. Кризис - лучшее время для Лидера

    03.03.2017: Торт-раскраска

    02.03.2017: К.Бордунос. Альфа-контроль в бизнесе

    02.03.2017: Кен Уилбер. Интегральная духовность

    28.02.2017: Имбилдинг - Кaк cделaть ночи незaбывaемыми

    28.02.2017: Классические многослойные тортики от craftsy

    28.02.2017: SMM: Индустрия моды (SFBA)

    28.02.2017: Раскрытие твоей ценности - 1

    28.02.2017: [Кулинaрия] Шкoла хорoшей хoзяйки

    22.02.2017: Любовь. Секреты разморозки

    21.02.2017: Элитный курс «Психология и психофизиология питания»

    20.02.2017: Шьем купальники для гимнастики

    17.02.2017: Роман Милованов (AWAKENING). Сердце. вебинар

    07.02.2017: swSpyBrowser - интернет мультибраузер в каждой вкладке свои cookies, useragent и IP-адрес

    03.02.2017: Элитный курс «фитнес-нутрициолог»

    26.01.2017: А. Маматов. Депрессия и панические атаки. январь 2017

    26.01.2017: Сергей Домогацкий - Путь

    24.01.2017: Вебинары К. Довлатова по "сказкам" с реинтеграциями

    21.01.2017: Antidetect 6.50.2.2016

    17.01.2017: БроБот 2016.07.13

    16.01.2017: А. Иванов. Веб-аналитика для бизнеса (для чайников)

    12.01.2017: [Дуйко Андрей] Очарование Партнера 2

    07.01.2017: С. Ковалев. книга "Нейропрограммирование успешной судьбы" 2015

    25.12.2016: И. Ледоховский, Р. Мануэль. Мастер гипнотических историй. часть 2 из 3

    23.12.2016: Книга - А. Погорелый. 23 способа как заработать в интернете. 2016

    16.12.2016: И. Ледоховский, Р. Мануэль. Мастер гипнотических историй. часть 1 из 3

    12.12.2016: В. Сибирцев. Избавление от страхов

    08.12.2016: Книга - Маркетинг Дракулы

    02.12.2016: Кен Уилбер. Интегральный буддизм

    02.12.2016: Е. Шморгун. Утренние медитации

    02.12.2016: Е. Шморгун. Первый базовый модуль. Осознанность

    16.11.2016: XMailer III,XServers v1.0,XDomains v1.0

    11.11.2016: И. Ледоховский. Мастерство разговорного гипноза. часть 3

    27.10.2016: Datacol v7.10

    20.10.2016: ОСНОВЫ МОДНОГО БИЗНЕСА. 2016

    15.10.2016: Эзотерический марафон "Новая Я"

    28.09.2016: О.Фролова. Визуальный интеллект. 9 авг 2016

    28.09.2016: ГостьОК 2.0 PRO

    24.09.2016: Софт для накрутки Андроид инсталлов (установок)

    17.09.2016: Д. Богданов - 2016. Матрица здоровья LIVE

    07.09.2016: РегОК RU

    03.09.2016: И. Ледоховский. Мастерство разговорного гипноза. часть 2

    28.08.2016: Английский язык + начальная школа в схемах и таблицах

    24.08.2016: Парсер Яндекс Карт ver 4.3

    16.08.2016: TWIDIUM TWITTER EDITION 1.0.22

    16.08.2016: Парсер 2GIS ver 4.4

    16.08.2016: Оффлайн Парсер 2Гис! Offline Parser 2Gis!

    16.08.2016: Steadfast.SIPflooder Нулл

    15.08.2016: ElcomSoft.Distributed.Password.Recovery.v3.2.959

    15.08.2016: В каждом ребенке солнце

    15.08.2016: Испания. Гастрономия

    15.08.2016: Книги по китайской медицине. Часть 2.

    15.08.2016: Логотип и фирменный стиль. Руководство дизайнера

    15.08.2016: Налоги за 14 дней. Экспресс-курс. Новое, 14-е изд.

    15.08.2016: Голубая точка. Космическое будущее человечества

Файловая БД

Опубликовано Kuiper. Блог Kuiper. Просмотры: 155

Уф, 7 часов почти непрерывно возился, но смог сделать первые важные шаги по созданию блоговой CMS.
Первым делом нужно было надежно написать маршрутизацию всех запросов к скрипту, чтобы и XSS с PHP-inj фильтровались, и нужные страницы отображались.

Сам код, где берется $_SERVER["REQUEST_URI"], т.е. запрос к сайту, и затем сравнивается с изначально заданными страницами, это не очень сложно. Сложнее было настроить .htaccess на Денвере. Я почему-то думал, что на локали, на Денвере в Windows htaccess-файл создается как htaccess.txt и, вроде бы, он даже работал, когда я его создавал для других локальных скриптов. Но помучившись с mod_rewrite, который включен в Apache2, а у меня в маршрутизаторе, т.е. Front Controller не пашет, методом научного тыка понял, что нужно создавать файл .htaccess, причем, именно в Блокноте, т.к. мой любимый NotePad++ не умеет сохранять такие имена файлов, а Блокнот умеет. И лишь после этого htaccess начал работать.

Сам .htaccess тоже оптимизировал, я вообще с его синтаксисом не очень дружу, очень редко что-то нужно сделать, поэтому оптимизировал код до 4 строк (кому нужно тоже - это код для перенаправления всех запросов к сайту на скрипт index.php):

Код:
[ Only registered users can see the bbcode. Click Here To Register... ]
IfModule можно было тоже не писать, но так надежнее, хотя в скрипте у меня первым делом идет проверка доступности mod_rewrite на сервере или хостинге, где запускается скрипт Kuiper CMS.

Идем дальше, переходим к MVC и классам.
Решил закрепить знания по ООП и SQL, поэтому вместо простого использования MySQL решил делать CMS на файлах.

Причин использовать "файловую БД" две:
- закрепляю знания по работе с данными, "изобретая" вновь методы выборки, редактирования и удаления записей в массивах информации (не в array(), а в больших объемах упорядоченных данных),
- пользователю моей CMS нужно будет сделать меньше действий, т.к. ему не нужно будет создавать базу данных, достаточно лишь подключиться по FTP к серверу или хостингу, скопировать файлы, поставить права 777 на папку db/ и 666 на файл settings.php, а после установки CMS поставить права 644 на settings.php и удалить файл install.php.

Кроме того, есть такие хостинги с тарифами, где разрешен PHP, но не разрешено использование MySQL, либо сервер БД очень глючный и часто падает. Обычно это тарифы хостинга с приятными низкими ценами.

Минус файловой БД в том, что при больших нагрузках такая CMS будет работать медленнее, но Kuiper CMS - это блоговая CMS, которую создает новичок, поэтому под хайлоад она не будет использоваться ))
Хотя, кто знает, может именно эта CMS вырастет во что-то большее, чем просто проект для портфолио.


Наверное, вам не очень интересно читать все эти подробности, буду выделять такие записи специальной пометкой "Программирование", т.к. нет тегов или категорий.
А для меня такие записи очень полезны, т.к. я еще раз мысленно прохожу по изученному и сделанному, это помогает закрепить знания и навыки в долговременную память, пока они не "стерлись" из краткосрочной памяти.
Вам необходимо войти для комментирования