Веб-фреймворк для языка Parser 3
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
lib
tests
.gitignore
LICENSE.md
README.md
TODO
classes.md
classes.sh

README.md

PF2 — веб-фреймворк для Parser 3

PF2 помогает разработчикам писать веб-приложения. Фреймворк реализует шаблон проектирования MVC. PF2 — переработанная версия библиотеки PF.

Стабильная версия в ветке master. Разрабатываем в бранче develop и ветках feature/name.

Авторы:

Установка и простое приложение

В папку с классами загрузите библиотеку. Папка должна называться pf2. Папку со своими классами и классами pf2 положите вне веб пространства.

В auto.p прописываем путь к папке в которую положим pf2:

$CLASS_PATH[^table::create{path
/../vendor/
}]

Устанавливаем pf2 в папку /../vendor/pf2 вне веб-пространства:

cd ~/mysite.ru/vendor
git clone https://github.com/unhandled-exception/pf2.git

В Апаче пропишите команды:

ReqriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [L]

Теперь все запросы к нашему сайту веб-сервер отправит на файл index.html.

В index.html напишем первое приложение:

@USE
pf2/lib/web/controllers.p


@main[][locals]
  $site[^Site::create[]]
  ^site.run[]


@CLASS
Site

@BASE
pfController

@OPTIONS
locals

@create[aOptions]
  ^BASE:create[$aOptions]
  ^router.assign[/hello/:name;/hello]

@/[aRequest]
  Это мой сайт.

@/hello[aRequest]
  Привет, ^ifdef[$aRequest.name]{мир}!

@/NOTFOUND[aRequest]
  $result[
    $.status[404]
    $.body[Страница не найдена.]
  ]

Попробуйте открыть страницы mysite.ru/, mysite.ru/hello/world/, mysite.ru/hello/Иванопуло, mysite.ru/404.

Примеры

pf2-secrets-app

Законченное приложение на pf2 с моделями, контролерами и шаблонами. Сайт помогает пользователям передавать секретные сообщения коллегам и друзьям через интернет. Сообщение защищаем пин-кодом и уничтожаем как только получатель откроет ссылку и введет правильный пин-код.

pf2-project-template

Шаблон приложения на pf2. Это не готовое приложение, а один из возможных способов организации приложения на pf2.

Документация

MVC

Модели