K4:Константы
From In-Portal Developers Guide
Current revision (12:53, 15 March 2015) (view source) |
|||
(8 intermediate revisions not shown.) | |||
Line 1: | Line 1: | ||
+ | {{Transferred|url = http://community.in-portal.org/pages/viewpage.action?pageId=14155811}} | ||
+ | |||
{{toc | category = Структура приложения | sortkey = 003.001}} | {{toc | category = Структура приложения | sortkey = 003.001}} | ||
В К4 константы делятся по смыслу исходя из места их определения на: | В К4 константы делятся по смыслу исходя из места их определения на: | ||
- | + | * '''системные''' - определяются в "<code>core/kernel/startup.php</code>" | |
- | * ''' | + | * '''общего применения''' - определяются в "<code>core/kernel/constants.php</code>" |
- | * ''' | + | * '''модульные''' - определяются в необязательном файле "<code><название_модуля>/constants.php</code>" |
- | * ''' | + | |
- | == | + | == Системные константы == |
{| class="prettytable" | {| class="prettytable" | ||
- | ! | + | ! название || описание |
|- | |- | ||
- | | {{ConfigProperty|FULL_PATH}} || | + | | {{ConfigProperty|FULL_PATH}} || Полный путь к сайту в файловой системе сервера. |
|- | |- | ||
- | | {{ConfigProperty|BASE_PATH}} || | + | | {{ConfigProperty|BASE_PATH}} || Директория, в которой находится сайт (относительно [http://lv.php.net/reserved.variables <nowiki>$_SERVER['DOCUMENT_ROOT']</nowiki>]) |
|- | |- | ||
| {{ConfigProperty|REL_PATH}} | | {{ConfigProperty|REL_PATH}} | ||
- | | | + | | Путь от корня проекта до PHP-файла (обычно это "<code>index.php</code>"), на который заходит пользователь. Объявление данной константы должно происходить до или сразу после объявления константы [[#FULL_PATH|FULL_PATH]] в этом PHP-файле. Данная константа должна задаваться во всех случаях, когда PHP-файл не находиться в корне проекта или в его "<code>admin</code>" директории. Примеры: |
- | + | файл: testing/folder/index.php - константа: "testing/folder" | |
- | + | файл: sub_folder/index.php - констана "sub_folder" | |
- | + | Данная константа используется только для корректного получения значения константы [[#BASE_PATH|BASE_PATH]]. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода "<code>kApplicaton::HREF</code>" будут некорректными. | |
|- | |- | ||
- | | {{ConfigProperty|SERVER_NAME}} || | + | | {{ConfigProperty|SERVER_NAME}} || Имя виртуального хоста (<code>VirtualHost</code>), под которым запущен данный сайт (содержание переменной [http://lv.php.net/reserved.variables <nowiki>$_SERVER['SERVER_NAME']</nowiki>]). В случае, если название виртуального хоста получить не удалось, то будет использован хост, указанный в константе [[#DOMAIN|DOMAIN]] (из файла "<code>config.php</code>"). Функциональность работающая в случае, когда не удалось получить имя виртуального хоста доступна начиная с [[K4:Core v 4.3.9|Core v 4.3.9]]. |
|- | |- | ||
- | | {{ConfigProperty|WRITEABLE}} || | + | | {{ConfigProperty|WRITEABLE}} || Содержание констант [[#FULL_PATH|FULL_PATH]] и [[#WRITEABLE_BASE|WRITEABLE_BASE]] вместе. |
|- | |- | ||
- | | {{ConfigProperty|MAX_UPLOAD_SIZE}} || | + | | {{ConfigProperty|MAX_UPLOAD_SIZE}} || Максимальный размер файла, который можно загрузить на сервер (в байтах). |
|} | |} | ||
- | {{ambox | type = refactoring | text = | + | {{ambox | type = refactoring | text = Константы [[#WRITEABLE|WRITEABLE]] и [[#WRITEBALE_BASE|WRITEBALE_BASE]] неправильно названы. По английски они правильно должны называться <code>'''WRITABLE'''</code> и <code>'''WRITABLE_BASE'''</code> соответственно.}} |
Пример: | Пример: | ||
Line 120: | Line 121: | ||
Константа доступна начиная с [[K4:Core v 4.0.1|Core v 4.0.1]]. | Константа доступна начиная с [[K4:Core v 4.0.1|Core v 4.0.1]]. | ||
| <pre>[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}</pre> | | <pre>[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}</pre> | ||
+ | |- | ||
+ | | {{ConfigProperty|ALLOW_DEFAULT_SETTINGS}} | ||
+ | | Данная константа задумана для передачи в метод "<code>kApplication::RecallPersistentVar</code>" в качестве значения по умолчанию. Это подробнее показано на приведённом ниже примере. | ||
+ | <source lang="php"> | ||
+ | $value = $this->Application->RecallPersistentVar('VarName', ALLOW_DEFAULT_SETTINGS); | ||
+ | </source> | ||
+ | Если требуемой переменной в таблице [[K4:PersistentSessionData|PersistentSessionData]] нету и используется эта константа, то будет возвращено значение этой переменной взятое у пользователя, указанного в конфигурационной переменной [[K4:Configuration#DefaultSettingsUserId|DefaultSettingsUserId]]. Данная константа доступна начиная с [[K4:Core v 4.2.2|Core v 4.2.2]]. | ||
+ | | <center><code>_USE_DEFAULT_USER_DATA_</code></center> | ||
|} | |} | ||
Line 158: | Line 167: | ||
| {{ConfigProperty|APPLICATION_PATH}} || <code>ApplicationPath</code> || Расположение файла с классом, указанным в [[#APPLICATION_CLASS|APPLICATION_CLASS]] относительно корня сайта (с указанием "<code>/</code>" спереди), например. "<code>/custom/units/sections/e_application.php</code>". | | {{ConfigProperty|APPLICATION_PATH}} || <code>ApplicationPath</code> || Расположение файла с классом, указанным в [[#APPLICATION_CLASS|APPLICATION_CLASS]] относительно корня сайта (с указанием "<code>/</code>" спереди), например. "<code>/custom/units/sections/e_application.php</code>". | ||
|} | |} | ||
+ | |||
+ | [[ru:{{FULLPAGENAME}}]] | ||
+ | [[en:K4:Constants]] |
Current revision
This article was transferred! You see this message because current Article was transferred to http://community.in-portal.org/pages/viewpage.action?pageId=14155811. |
| ||
---|---|---|
Статьи в этой категории | ||
В К4 константы делятся по смыслу исходя из места их определения на:
- системные - определяются в "
core/kernel/startup.php
" - общего применения - определяются в "
core/kernel/constants.php
" - модульные - определяются в необязательном файле "
<название_модуля>/constants.php
"
Системные константы
название | описание |
---|---|
FULL_PATH | Полный путь к сайту в файловой системе сервера. |
BASE_PATH | Директория, в которой находится сайт (относительно $_SERVER['DOCUMENT_ROOT']) |
REL_PATH
| Путь от корня проекта до PHP-файла (обычно это "index.php "), на который заходит пользователь. Объявление данной константы должно происходить до или сразу после объявления константы FULL_PATH в этом PHP-файле. Данная константа должна задаваться во всех случаях, когда PHP-файл не находиться в корне проекта или в его "admin " директории. Примеры:
файл: testing/folder/index.php - константа: "testing/folder" файл: sub_folder/index.php - констана "sub_folder" Данная константа используется только для корректного получения значения константы BASE_PATH. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода " |
SERVER_NAME | Имя виртуального хоста (VirtualHost ), под которым запущен данный сайт (содержание переменной $_SERVER['SERVER_NAME']). В случае, если название виртуального хоста получить не удалось, то будет использован хост, указанный в константе DOMAIN (из файла "config.php "). Функциональность работающая в случае, когда не удалось получить имя виртуального хоста доступна начиная с Core v 4.3.9.
|
WRITEABLE | Содержание констант FULL_PATH и WRITEABLE_BASE вместе. |
MAX_UPLOAD_SIZE | Максимальный размер файла, который можно загрузить на сервер (в байтах). |
Исходный код требует реорганизации (refactoring ).Константы WRITEABLE и WRITEBALE_BASE неправильно названы. По английски они правильно должны называться WRITABLE и WRITABLE_BASE соответственно. |
Пример:
http://alex.prod.intechnic.lv/test_project - путь в web browser FULL_PATH - "/home/sites/alex/web/test_project" BASE_PATH - "/test_project" SERVER_NAME - "alex.prod.intechnic.lv" WRITEBALE_BASE - "/system" WRITEBALE - "/home/sites/alex/web/test_project/system"
Константы общего применения
- распространённые типы записей (статусы) в базе данных:
название | описание | значение |
---|---|---|
STATUS_ACTIVE | Запись активна. | |
STATUS_DISABLED | Запись не активна. | |
STATUS_PENDING | Запись требует подтверждения администратора. | |
- статусы секций в дереве в административной консоли:
название | описание |
---|---|
stTREE | Секция присутствует только в дереве (почти все секции). |
stTAB | Секция присутствует только как закладка (см. в In-Commerce:Discounts & Coupons). |
- статусы завершения событий в K4:
название | описание |
---|---|
erSUCCESS | Событие успешно завершило своё выполнение. После выполнения события будет сделано перенаправление, выполняемое для того, чтобы пользователь перезагрузив страницу (F5) повторно не вызвал это событие. |
erFAIL | Событие завершило свою работу, но не выполнило одну или более требуемых задач. Перенаправление происходить не будет. |
erFATAL | Событие полностью не сделало свою работу (хуки не будут выполняться). Перенаправление происходить не будет. |
erPERM_FAIL | Проверка прав доступа не прошла успешно. Автоматически будет выполнено перенаправление на шаблон сообщающий пользователю об отсутствии у него прав на данное событие. |
erSTOP | Событие возвращает ответ в AJAX запрос. Шаблон не будет обработан после выполнения события, код отладчика тоже добавлен не будет. |
- константы, использующиеся при редактировании содержания сайта через административную консоль.
название | описание |
---|---|
EDITING_MODE | Данная константа, начиная с Core v 5.0.0, заменяет собой методы EditMode в обработчике событий и тэгов префикса "st " и "cms ". Значение этой константы может быть равно значению описанных ниже 3 констант или нулю, что будет означать, что пользователь не находиться в режиме редактирования содержания сайта. В независимости от режима редактирования содержания сайта оранжевые кнопки "Edit " будут появляться над теми фрагментами содержания страницы, которые можно изменить. Данная константа доступна начиная с Core v 5.0.0.
|
EDITING_MODE_CMS | Режим редактирования сайта, при котором изменяться может только содержание cms-блоков (это был единственный возможный режим редактирования сайта до Core v 5.0.0). Данная константа доступна начиная с Core v 5.0.0. |
EDITING_MODE_LAYOUT
| Режим редактирования сайта, при котором изменяться может изменяться только содержание блоков, при подключении которых был передан параметр "layout_view ":
<inp2:m_RenderElement name="block_name" layout_view="1"/> В теме " |
EDITING_MODE_DESIGN
|
Режим редактирования сайта, при котором изменяться может только дизайн показываемых на шаблоне блоков, т.е. блоков, которые были указаны в параметре " <inp2:m_RenderElement name="element_name" design="design_block_name"/> В теме " |
- разное:
название | описание | значение |
---|---|---|
ENV_VAR_NAME | Значение данной константы используется для определения названия переменной окружения в запросе к серверу. | env |
VALUE_LIST_SEPARATOR | Значение, которое будет использоваться для объединения возможных опций в полях ValueList (во всех таблицах, кроме таблицы ConfigurationAdmin). | || |
REGEX_EMAIL_USER
| Регулярное выражение, которое проверяет части с именем пользователя в адресе электронной почты (email ). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; Константа доступна начиная с Core v 4.0.1. | [-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+ |
REGEX_EMAIL_DOMAIN
| Регулярное выражение, которое проверяет части с доменом (domain ) в адресе электронной почты (email ). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; Константа доступна начиная с Core v 4.0.1. | [a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6} |
ALLOW_DEFAULT_SETTINGS
| Данная константа задумана для передачи в метод "kApplication::RecallPersistentVar " в качестве значения по умолчанию. Это подробнее показано на приведённом ниже примере.
$value = $this->Application->RecallPersistentVar('VarName', ALLOW_DEFAULT_SETTINGS); Если требуемой переменной в таблице PersistentSessionData нету и используется эта константа, то будет возвращено значение этой переменной взятое у пользователя, указанного в конфигурационной переменной DefaultSettingsUserId. Данная константа доступна начиная с Core v 4.2.2. | _USE_DEFAULT_USER_DATA_ |
Константы это идентификаторы значений, которые не могут изменяться по ходу выполнения скрипта.
Константы из config.php
В базовой директории проекта (той, что в FULL_PATH константе) находиться файл config.php
, который содержит настройки для подключения к базе данных и ряд других параметров, которые при инициализации K4 превращаются в константы. На данный файл нельзя, не в коем случае, делать commit. По своему формату этот файл похож на обычный ini файл. Единственное отличие это расширение файла и защитная php конструкция в его начале.
название константы | название опции | описание |
---|---|---|
SQL_TYPE | DBType | Тип сервера баз данных. Пока поддерживается только MySQL. |
SQL_SERVER | DBHost | IP адрес или имя сервера баз данных. |
SQL_USER | DBUser | Имя пользователя, для подключения к базе данных. |
SQL_PASS | DBUserPassword | Пароль, для подключения к базе данных. |
SQL_DB | DBName | Название базы данных. |
SQL_COLLATION | DBCollation | Тип сопоставления строк, используемый при работе базой данных (напр. "utf8_general_ci ").
|
SQL_CHARSET | DBCharset | Кодировка данных, используемая при работе базой данных (напр. "utf8 ").
|
TABLE_PREFIX | TablePrefix | Префикс таблиц проекта в базе данных. |
DOMAIN | Domain | Домен, на котором сайт находиться. Используется для выхода из SSL-режима, а также для проверки лицензии в In-Portal .
|
ADMIN_DIRECTORY | AdminDirectory | Расположение директории с административной консолью относительно FULL_PATH. Доступна, начиная с Core v 4.3.0. |
EDITOR_PATH | EditorPath | Расположение директории с FCKEditor относительно FULL_PATH (обычно "/core/editor/ "). Доступна, начиная с Core v 4.3.2.
|
WRITEABLE_BASE | WriteablePath | Директория, в которую имеет право писать сервер (обычно "/system ").
|
APPLICATION_CLASS | ApplicationClass | Класс, который используется для создания объекта Application, например "EApplication ".
|
APPLICATION_PATH | ApplicationPath | Расположение файла с классом, указанным в APPLICATION_CLASS относительно корня сайта (с указанием "/ " спереди), например. "/custom/units/sections/e_application.php ".
|