Это не готовое приложение, а один из возможных способов организации приложения на PF2. Предполагаем, что мы используем свой собственный виртуальны или реальный сервер. Я работаю на FreeBSD, но на Linux у нас поменяется не многое. Под Виндоус тоже можно все настроить, но у меня нет возможности это проверить. :)
Для каждого приложения создаем пользователя «user» в системе и домашнюю папку /home/user. В домашней папке делаем папку для проекта /home/user/site.ru. В папку проекта клонируем репозиторий:
cd ~/site.ru
git clone https://github.com/unhandled-exception/pf2-project-template.git .
Удаляем папку .git и говорим git init, чтобы инициализировать пустой репозиторий гита. Вы же не собираетесь разрабатывать дальше без системы контроля версий?
Создаем папки, которые не попадут в репозиторий гита.
- /logs — для логов веб-сервера
- /temp — для временных файлов
Приложение:
- /app — весь код проекта кладем в папку app
- /app/config — конфигурационные файлы проекта
- /app/controllers/site — контролеры
- /app/models — модели
- /app/public/site — папка с корнем сайта. Она будет прописана в DocumentRoot дерективе Апача.
- /app/sql — sql-файлики со структурой БД.
- /app/views/site — шаблоны
Промежуточную подпапку site я делаю специально. Если нам понадобится сделать для проекта несколько поддоменов, то нам нужно будет сделать отдельные контролеры, шаблоны и докрут для поддомена. Тогда мы просто доавим еще одну папку рядом с site и будем пользоваться остальной структурой проекта без изменений. Например хотим домен api.site.ri, тогда добавим папки /app/controllers/api, /app/public/api, /app/views/api.
Вспомогательные папки:
- /cgi-bin — бинарник Парсера (parser3.cgi), sql-драйверы (/cgi-bin/lib, кодировки (/cgi-bin/charsets).
- /confs — сюда кладем настройки Апача, ротации логов и любых других связаных внешних программ
- /vendor — сюда кладем все сторонние библиотеки
- /vendor/pf2 — клонируем сюда PF2
git clone https://github.com/unhandled-exception/pf2.git vendor/pf2
- confs/apache/site.conf — пример конфигурации Апача 2.4. Сразу сделан редирект на https-версию.
- app/public/site/index.html — это единственный файл с кодом на Парсере в веб-пространстве. В этом файле нет никаких конфигурационных параметров — только минимальный код для запуска приложения. Если веб-сервер настроен неверно и этот файлик попадет в руки злоумышленников, то они ничего из него не узнают о том как устроено приложение.
- app/config/app_config.p — вот тут уже лежат конфигурационные параметры, код для инициализации приложения. Этот файлик вызываем из index.html, чтобы настроить приложение.
manage.p — консольное приложение для генерации кода моделей, форм, контролеров. Его можно расширить командами для нашего проекта. Команды можно вызвать из консоли или поставить в крон.
Чтобы manage.p работал надо в папку bin пользователя (/home/user/bin) положить Парсер (/home/user/bin/parser3, бинарник без расширения), sql-драйверы (/home/user/bin/lib) и кодировки (/home/user/bin/charsets).