PF2 помогает разработчикам писать веб-приложения. Фреймворк реализует шаблон проектирования MVC. PF2 — переработанная версия библиотеки PF.
Стабильная версия в ветке master. Разрабатываем в ветках feature/name, все изменения только через пул-реквесты. Для нового кода обязательно пишем тесты в папке ut/.
Авторы:
- Олег Волчков (oleg@volchkov.net, unhandled-exception.ru)
- Алексей Марьин (groundzero.ru)
В папку с классами загрузите библиотеку. Папка должна называться 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.
- Контролеры и маршрутизация
- Мидлваре