Библиотека TPhpPrown возникла из практической работы - из вопросов и необходимостей, которые появлялись при программировании сайтов на PHP; из различий между 5 и 7 версиями, которые необходимо было обыгрывать.
Каждая функция библиотеки выполняет свою прикладную задачу: проверяет какое-либо условие в свершившемся событии или какую-нибудь возможность для предстоящего действия и выполняет само это действие, проверяет определенные характеристики или устанавливает некоторые значения.
В состав библиотеки кроме функций, выполняющих определенные задачи входят и вспомогательные модули - инициализации, которые содержат в себе, как на складе, общие для всех функций константы, переменные, сообщения и другие сущности.
«Под прикладной задачей следует понимать сюжетную задачу, сформулированную в виде задачи-проблемы и удовлетворяющую следующим условиям:
вопрос должен быть поставлен в таком виде, в каком он обычно ставится на практике (решение имеет практическую значимость);
все величины (если они заданы) должны быть реальными, взятыми из жизни»
М.В. Крутихина
Функции разбиты на группы в зависимости от своего назначения, каждая группа выделяется префиксом в своем имени (префикс может и отсутствовать “по жизни” - в той ситуации, когда функция возникала, префикс не был очевиден).
is - функция проверяет некоторое условие и возвращает true или false (например: isSubstrInUri - проверяет присутствие фрагмента в поступившем запросе сайта; isCalcInBrowser - проверяет возможность выполнения функции Calc в CSS текущего браузера);
ini - вспомогательный модуль (инициализация), устанавливающий общие для всех функций библиотеки константы, переменные, сообщения и другие сущности (например: iniErrMessage - определяет общие сообщения библиотеки; iniRegExp - определяет популярные регулярные выражения PHP);
get - функция возвращает характеристику некоторого объекта или получает значение в результате заданного действия (например: getSiteDevice - определяет тип устройства, с которого запрошен сайт; getTranslit - выполняет прикладную транслитерацию (tve) русских букв);
Make - функция выполняет заданное действие и возвращает целочисленный признак состояния после этого действия (например: MakeCookie - устанавливает новое значение COOKIE в браузере и заменяет значение во внутреннем массиве $_COOKIE; MakeRegExp - отрабатывает регулярное выражение на тексте и трассирует разбор);
View - функция представляет на экране сайта значения некоторого объекта (например: ViewArray - показывает содержимое простого массива; ViewGlobal - показывает значения глобальных переменных);
Среди всех переменных, которые появляются при программировании сайтов, можно выделить четыре особенные группы:
а) переменные-кукисы. Это копии кукисов сайта в текущем браузере (то есть копии элементов суперглобального массива $_COOKIE). Базовой функцией для установки кукиса в PHP является функция setcookie(). Но в этом случае новое значение кукиса на странице сайта появится только после её обновления. TPhpPrown предлагает использовать собственную функцию MakeCookie(). Использование переменных-кукисов совместно с этой функцией позволяет работать с измененными значениями уже в текущем сценарии страницы;
б) параметры страниц сайта. Это переменные, которые являются характеристиками страниц и могут быть настроены пользователем сайта. В настоящее время это часть переменных-кукисов. В дальнейшем для параметров страниц сайта будут использоваться и данные в памяти браузера LocalStorage;
в) сессионные переменные. Это переменные, которые живут в течение одной сессии работы в браузере. Они являются копиями элементов суперглобального массива $_SESSION. TPhpPrown предлагает, как стиль программирования, использовать сессионные переменные и переменные-кукисы. Это позволит отвлечься от соответствующих суперглобальных массивов и унифицировать работу с переменными.
TPhpPrown рекомендует применять следующие префиксы при определении имен указанных групп переменных:
$c_ - для переменных-кукисов (например: $c_BrowEntry - число запросов сайта из браузера; $c_PersName - логин посетителя; $c_PersEntry - счетчик посещений текущим посетителем);
$p_ - для параметров страниц сайта (например: $p_NewsForm - форма представления новостей; $p_NewsAmt - количество новостей в форме; $p_HeightIns - количество строк в окне инструкции);
$s_ - для сессионных переменных (например: $s_Counter - число обращений к странице за сессию; $s_NameNews - активированная лента новостей);