Skip to content

unhandled-exception/pf2-project-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон веб-приложения на pf2

Это не готовое приложение, а один из возможных способов организации приложения на 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).

About

Шаблон веб-приложения на pf2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published