Skip to content

Веб-фреймворк для языка Parser 3

License

Notifications You must be signed in to change notification settings

unhandled-exception/pf2

Repository files navigation

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

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

Стабильная версия в ветке master. Разрабатываем в ветках feature/name, все изменения только через пул-реквесты. Для нового кода обязательно пишем тесты в папке ut/.

Авторы:

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

В папку с классами загрузите библиотеку. Папка должна называться 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 с моделями, контролерами и шаблонами. Сайт помогает пользователям передавать секретные сообщения коллегам и друзьям через интернет. Сообщение защищаем пин-кодом и уничтожаем как только получатель откроет ссылку и введет правильный пин-код.

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

Тесты

Тесты лежат в папке ut/. Фреймворк для тестирования в lib/tests.

Тестовый фреймворк lib/tests/unittest.p сделан по мотивом Python Unittest, не использует классов pf2 и может быть использован для тестирования любого Парсеровского кода без импортов pf2.

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

MVC

Модели

About

Веб-фреймворк для языка Parser 3

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages