My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Wiki pages
Links

Библиотека классов на языке Парсер 3, облегчающая жизнь разработчикам веб-приложений и сайтов. Лицензия — MIT (совместима с 2-х пунктной BSD-лицензией).

Текущая версия 0.9.4

Посмотреть историю изменений вы можете в файле CHANGELOG.

Библиотека состоит из нескольких частей, большинство из которых можно использовать независимо. Библиотека работает с Парсером версии не ниже 3.3.0 (настоятельно рекомендуется 3.4.0 и выше). В коде модулей содержится некоторое количество коментариев, документация и примеры будут появляться на этом сайте по мере написания. Некоторые технические подробности работы модулей библиотеки можно посомтреть в файле TECHNOTES.

Библиотека использует кодировку UTF-8, как основную. Т.е. предполагается, что в Парсере задан $request:charset[utf-8].

Базовые модули:

  • общий предок практический всех классов PF'а (pf/types/pfClass.p) - содержит набор методов, упрощающих создание свойств, обеспечивающих совместимость наследников с базовыми классами (методы int, double, bool, contains, foreach) и пр.;
  • функции для обработки строк (pf/types/pfString.p);
  • валидация данных (pf/types/pfValidate.p);
  • коллекции — списки, стеки, очереди, словари (pf/collections).
  • Класс pfRuntime, содержащий методы для "умной" сборки мусора и профилирования кода.

Системные модули:

  • работа с операционной системой (pf/io/pfOS.p);
  • модуль, упрощающий написание консольных скриптов (pf/io/pfConsole.p);
  • интерфейс-обертка к встроенному в Парсер интерфейсу к cURL (pf/io/pfCFile.txt);

Работа с SQL-серверами и кеширование:

  • работа с SQL-серверами (pf/sql). Классы имеют почти такой же интерфейс, как и популярные классы Михаила Петрушина, но еще поддерживают транзакции, мемоизацию (identityMap) и safeInsert;
  • «универсальное» кеширование (pf/cache/pfCache.p);
  • generic-классы, реализующие некоторые сценарии использования баз данных, например, тегирование и хранение настроек приложений.

Модули, реализующие MVC-фреймворк:

  • pfModule — базовый класс, который позволяет очень гибко обрабатывать URL-подобные «экшны», а также позволяет собирать иерархии модулей для разделения логики на мелкие части (pf/modules);
  • база веб-фреймворка (pf/web), позволяющая строить гибкие веб-приложения (описание смотрите в файле TECHNOTES);
  • Temple — модульный шаблонный движок, поддерживающий наследование и импорты, в качестве базового языка используется Парсер (pf/templet/pfTemple.txt);
  • работа с авторизацией (pf/auth/auth.txt);
  • защита от "дублирования" форм и CSRF (pf/web/helpers/pfAntiFlood.p);
  • транслитирирование URLов (pf/wiki/pfURLTranslit.p).

Юнит-тесты, утверждения:

  • pfAssert — модуль, облегчающий программирование с использованием «утверждений» (pf/tests/pfAssert.p);
  • организация unit-тестов (pf/tests) - работает, но требует серьезного рефакторинга после появления в Парсере класса reflection.

Модули, находящиеся в разработке

Модули, которые развиваются под конкретные проекты и имеют ограниченный функционал:

  • фреймворк для разработки консольных скриптов (pf/management);
  • модуль для работы с изображениями через пакет Imagemagick (pf/images);

Следующие модули интенсивно используют регулярные выражения, совместимые исключительно с кодировкой windows-1251, что требует их адаптации к новой версии PCRE, используемой в Парсере начиная с версии 3.3.0:

  • модуль для парсинга wiki-разметки (pf/pfWikiFormatter.p);
  • типографика и параграфика (pf/wiki/pfTypografica.p и pf/wiki/pfParagrafica.p);
  • «раскраска» синтаксиса (pf/highliters).

Установка

Скачать текущую версию (trunk) можно из Subversion-репозитория проекта:

svn checkout http://parser3-pf.googlecode.com/svn/trunk/pf pf

Или загрузить в виде архива: http://code.google.com/p/parser3-pf/downloads/list (файлы называются по номерам комитов в транк).

Файлы билилотеки лучше всего поместить вне веб-простарнства, например в /../classes/pf, а в переменную $MAIN:CLASS_PATH добавить путь /../classes/. Это важно, поскольку модули библиотеки используют префикс pf/ для подключения необходимых модулей.

Пример подключения классов:

@USE
pf/types/pfClass.p

или

  ^use[pf/types/pfClass.p]

Обратная связь

Если у вас есть вопросы по использованию библиотеки, то их можно задать на форуме Парсера (мой ник - Sumo), по почте или через джабер (адрес есть в файле AUTHORS).

Powered by Google Project Hosting