О библиотеке.

Библиотека TPhpPrown возникла из практической работы - из вопросов и необходимостей, которые появлялись при программировании сайтов на PHP; из различий между 5 и 7 версиями, которые необходимо было обыгрывать.

Каждая функция библиотеки выполняет свою прикладную задачу: проверяет какое-либо условие в свершившемся событии или какую-нибудь возможность для предстоящего действия и выполняет само это действие, проверяет определенные характеристики или устанавливает некоторые значения.

В состав библиотеки кроме функций, выполняющих определенные задачи входят и вспомогательные модули - инициализации, которые содержат в себе, как на складе, общие для всех функций константы, переменные, сообщения и другие сущности.

«Под прикладной задачей следует понимать сюжетную задачу, сформулированную в виде задачи-проблемы и удовлетворяющую следующим условиям:

вопрос должен быть поставлен в таком виде, в каком он обычно ставится на практике (решение имеет практическую значимость);

все величины (если они заданы) должны быть реальными, взятыми из жизни»

М.В. Крутихина

Функции разбиты на группы в зависимости от своего назначения, каждая группа выделяется префиксом в своем имени (префикс может и отсутствовать “по жизни” - в той ситуации, когда функция возникала, префикс не был очевиден).

1. Общие (необязательные) префиксы и назначения программных модулей библиотеки:

is - функция проверяет некоторое условие и возвращает true или false (например: isSubstrInUri - проверяет присутствие фрагмента в поступившем запросе сайта; isCalcInBrowser - проверяет возможность выполнения функции Calc в CSS текущего браузера);

ini - вспомогательный модуль (инициализация), устанавливающий общие для всех функций библиотеки константы, переменные, сообщения и другие сущности (например: iniErrMessage - определяет общие сообщения библиотеки; iniRegExp - определяет популярные регулярные выражения PHP);

get - функция возвращает характеристику некоторого объекта или получает значение в результате заданного действия (например: getSiteDevice - определяет тип устройства, с которого запрошен сайт; getTranslit - выполняет прикладную транслитерацию (tve) русских букв);

Make - функция выполняет заданное действие и возвращает целочисленный признак состояния после этого действия (например: MakeCookie - устанавливает новое значение COOKIE в браузере и заменяет значение во внутреннем массиве $_COOKIE; MakeRegExp - отрабатывает регулярное выражение на тексте и трассирует разбор);

View - функция представляет на экране сайта значения некоторого объекта (например: ViewArray - показывает содержимое простого массива; ViewGlobal - показывает значения глобальных переменных);

2. Алфавитный список функций библиотеки и вспомогательных модулей/инициализаций:

CommonPrown - блок общих функций.

CreateRightsDir - создать каталог (проверить существование) и задать его права.

Findes - выбрать из строки подстроку, соответствующую регулярному выражению.

iniConstMem - определить общие константы библиотеки.

iniErrMessage - определить общие сообщения библиотеки.

iniRegExp - определить популярные регулярные выражения PHP.

isCalcInBrowser - проанализировать UserAgent браузера по версиям родительских браузеров и определить работает ли функция Calc для CSS.

MakeCookie - установить новое значение COOKIE в браузере, заменить это значение во внутреннем массиве $_COOKIE и установить новое значение переменной-кукиса в сценарии.

MakeRegExp - отработать регулярное выражение на тексте и оттрассировать разбор.

MakeSession - установить по заданному имени новое значение сессионной переменной на сервере (элемента в массиве $_SESSION) и вернуть это значение для записи в локальную переменную.

MakeType - преобразовать значение к заданному типу.

MakeUserError - вывести сообщение разработчика об ошибке в программируемом модуле или сформировать пользовательское исключение.

RecalcSizeInfo - изменить представление информации о размерности, то есть пересчитать число байт в число килобайт или кибибайт, мегабайт или мебибайт, ... или пересчитать в обратную сторону.

3. Рекомендации по именованию переменных при программировании сайтов с использованием библиотеки TPhpPrown.

Среди всех переменных, которые появляются при программировании сайтов, можно выделить четыре особенные группы:

а) переменные-кукисы. Это копии кукисов сайта в текущем браузере (то есть копии элементов суперглобального массива $_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 - активированная лента новостей);