Якщо ви читаєте це, то генерація робочого каталогу на сервері відбулося без помилок і не потребує додаткових дій. В подальшому, цю сторінку можна видалити, вона створюється лише за відсутності інших php-файлів у папці /pages
.
Скрипти написані для домашнього WEB-сервера однодискової станції Synology DS118, але можуть бути розгорнуті на будь-якому іншому ресурсі як є. Відповідальність за їх роботу і можливі наслідки лежить на користувачеві.
Проєкт автоматично генерує файли, необхідні для розгортання у будь-якій папці сервера з PHP версій 7.* та вище. Роутінг підтримує використання коротких і красивих URL, що відповідає базовим умовам Readable Permanent URLs. Наприклад, замість /index.php?page=test
користувач може перейти за коротким і зрозумілим шляхом /test
.
Захист, дозволи і перенаправлення на ресурси прописані у .htaccess
, який створюється для безпеки. Карта сайту sitemap.xml
генерується по запросу на льоту із файла кешу.
Для захисту від прямого доступу до PHP-сторінок, потрібно додавати на початку кожного скрипта строку: defined('APP_ACCESS') or die('Direct access prohibited');
Приклад metadata поточної сторінки:
<?php defined('APP_ACCESS') or die('Direct access prohibited'); /** title: Довідка description: Згенеровано автоматично при розгортанні проєкту menugroup: Допомога menutitle: Довідка menuorder: 1 slug: test layout: head **/>
Наявність slug
обов’язкова для всіх сторінок, він має бути унікальним серед усіх файлів, бо в разі конфлікту імен, - буде викликана сторінка перша за алфавітом. Якщо layout
відсутній, або пустий, то використовується шаблон формування сторінки head.php
по замовчанню. Метатеги menugroup
призначені для формування меню сайта і використовуються по необхідності.
root/ ├── assets/ │ ├── layout/ │ │ ├── head.php # Шаблон основний (HTML, CSS, JS) │ │ ├── header.php # Шаблон заголовока, навігація │ │ └── footer.php # Шаблон нижньої частини сторінки │ │ │ ├── css/ │ │ └── styles.css # Додатковий стиль для темної теми │ │ │ ├── js/ │ │ ├── scrollToTop.js # Плаваюча кнопка перехіду наверх │ │ └── setTheme.js # Перемикач темної/світлої теми │ │ │ └── img/ # Загальні фони і зображення │ ├── pages/ │ ├── test.php # Приклад сторінки з метаданими │ └── archive.php # Приклад сторінки з upload │ ├── cache/ │ ├── routes.json # Результат парсингу папки pages, кеш │ └── upload.json # Результат парсингу папки upload, кеш │ ├── bin/ │ ├── routes.php # Скрипт генерації кешу routes.json │ └── upload.php # Скрипт генерації кешу upload.json │ ├── upload/ # Розташування файлів для скачування │ ├── index.php # Головна сторінка зі списком сторінок ├── view.php # Скрипт для відображення сторінок ├── 404.html # Сторінка сповіщення про помилку в URL └── .htaccess # Налаштування URL і безпеки
Розмістіть файли проекту на сервері в будь-яку папку і введіть її ім'я у браузері. В результаті, буде розгорнута структура файлів і директорій, яка показана вище. У подальшому папку можна перейменовувати, або переносити в інше місце WEB-сервера, видаливши попередньо файл .htaccess
, після чого дані кешу і правила роутінгу будуть оновлені автоматично.