Движок для сайту своїми руками

Минулого разу ми розглянули спосіб організації «бази даних» без власне самої бази даних. Сьогодні продовжимо тему створення «без-mysql'ного» сайтовий движка розмовою про каталогах, файлах і include'ах. Також буде трохи теорії і практики про власне роботі такого двигуна.

Основні принципи організації роботи

Нескладно здогадатися, що організація пристрої движка залежить від багатьох факторів, змінюються в кожному конкретному прикладі сайту. Це і передбачувана структура інформації, і особливо хостингу, на якому розміщений сайт (наявність-ВІДСУТНІСТЬ таких засобів як php, ssi, доступність будь-яких баз даних, і т. П.), І не в меншій мірі при розробці пристрою майбутнього движка потрібно враховувати дизайн сайту, тобто структуру самих сторінок.

Отже, саме слово «поділ» має на увазі вже, як мінімум, поділ сторінки сайту на два файли - з шаблоном дизайну (який може бути загальним для декількох сторінок) і файлу з самим контентом, тобто інформацією.

Крім цих двох файлів нам знадобитися ще один, що включається в усі динамічні сторінки (маються на увазі сторінки, що містять php-код). У цьому файлі ми будемо зберігати всі загальні функції движка (власне, їх можна назвати «ядром»), а також визначимо деякі корисні глобальні константи.

Отже, повернемося до власне організації нашої системи. Основний принцип, який буде використовуватися в нашому прикладі - це однорівнева розділів. Але не хвилюйтеся - це лише для спрощення прикладів. Якщо для вас це занадто чесний обмеження - просто доведеться почекати наступного випуску, в якому ми пошукаємо обхідні шляхи.

Отже, у нас є каталоги, кожен з яких є розділом сайту (природно, крім службових каталогів, таких, як "images").

Значить, з іменами файлів розібралися. Але що ж нам покласти в ці файли? Ось тепер-то ми і переходимо власне до основної частини сьогоднішньої розмови.

На самому початку файлу варто вставити код включення ядра движка. Подібне звернення на мові php виглядає наступним чином:

У цьому файлі містяться ті самі функції читання-виведення, описані в попередній статті. Таким чином, вони тепер становяться доступними для використання.

У цьому ж файлі варто описати ще деякі корисні функції. Наприклад, функція безпосереднього отримання будь-якого файлу у вигляді рядка (може стане в нагоді):

Ще однією корисністю може виявитися функція для організації найпростішої новинний системи. Але, не дивлячись на простоту реалізації, вона має достачно зручні фичи, такі як висновок в будь-якому місці сторінки блоку з вказаною кількістю останніх новин і можливість організації архіву новин.

Суть її роботи зводиться до следуещее. Є текстовий файл з новинами, розділеними символом переведення рядка (словом, кожна новина - в новому рядку). Кожен рядок розділена символом вертикальної риски ( «|») на два поля: дату і, власне, саму новину.

Визначилися функцію новинний системи в нашому включамом файлі ( «ядрі»), ми отримуємо можливість на будь-якій сторінці отримати потрібну кількість останніх новин. Першим параметром передається частина шляху, яка вказує на розміщення файлу з новинами. Кількість виведених новин, як ви вже здогадалися, задається другим, необов'язковим, параметром.

Ось моя реалізація функції новинний системи:

Що ж, на сьогодні поки що все. Далі буде.