База
Last updated
Was this helpful?
Last updated
Was this helpful?
Базовый класс представляет ядро фреймворка. Он содержит все необходимое для запуска простого приложения. Файл base.php
также включает в себя основные , , , и классы реестра, чтобы уменьшить ненужный дисковый ввод-вывод для оптимальной производительности.
Не стесняйтесь удалять все остальные файлы в lib/
каталоге, если все, что вам нужно, - это основные функции, предоставляемые этим пакетом.
Пространство имен: \
Расположение файла: lib/base.php
Улей-это массив памяти, в котором хранятся переменные фреймворка в виде пар ключ / значение. Хранение значения в улье гарантирует, что оно глобально доступно для всех классов и методов в вашем приложении.
Привязка значения к ключу улья
Примеры установки переменных фреймворка:
Установка массивов:
Настройка свойств объекта:
более короткий синтаксис ArrayAccess, начиная с версии v3. 4. 0
Свойства кэширования
Вы можете кэшировать строки, массивы и все другие типы-даже полные объекты. get()
будет автоматически загружать их из кэша.
Примеры кэширования фреймворковых переменных:
Системная переменная
Помните: ключи улья чувствительны к регистру. Кроме того, ключи корневого улья проверяются на валидность по этим разрешенным символам: [ a-z A-Z 0-9 _ ]
Извлечение содержимого ключа улья
Чтобы получить значение ранее сохраненного фреймворка var, используйте:
Обратите внимание: если кэширование включено и var ранее не был определен во время выполнения, F3 пытается загрузить var из кэша при использовании get().
Доступ к массивам очень прост. Вы также можете использовать точечную нотацию JS'myarray.bar'
, что значительно облегчает чтение и запись.
Синхронизируйте глобальную переменную PHP с соответствующим ключом улья
Использование:
F3 автоматически синхронизирует следующие PHP глобалы: GET, POST, COOKIE, REQUEST, SESSION, FILES, SERVER, ENV
Получить ссылку на ключ улья и его содержимое
Использование:
Вы также можете добавить несуществующие ключи улья, элементы массива и свойства объекта, если 2-й аргумент по умолчанию имеет значение TRUE.
Если 2-й аргумент $add
равенfalse
, то он просто возвращает содержимое ключа улья только для чтения. Это поведение используется get (). Если ключ улья не существует, он возвращает значение NULL.
Используйте 3-й аргумент, если вы хотите найти ссылку в своем собственном массиве / объекте, а не в улье.
Таким образом, вы также можете использовать точечную нотацию с вашими собственными объектами.
Возвращает TRUE, если ключ улья установлен (или возвращает метку времени и TTL, если кэширован)
Эта exists
функция также проверяет внутреннее хранилище кэша, когда ключ не найден в улье. Если ключ найден в кэше, он затем возвращается array ( $timestamp, $ttl )
.Обратите внимание: exists использует функцию PHP `isset ()`, чтобы определить, установлен ли ключ улья и не равен нулю.
Использование:
Обратите внимание: если вы проверяете наличие ключа сеанса, сеанс запускается автоматически.
$val
Этот аргумент можно также использовать для извлечения содержимого ключа hive. Это может сэкономить дополнительный get
звонок.
Возвращает TRUE, если ключ hive пуст и не кэшируется
Эта devoid
функция также проверяет внутреннее хранилище кэша, если ключ не был найден в улье.Обратите внимание: devoid использует функцию PHP `empty ()`, чтобы определить, является ли ключ hive пустым и не кэшируется.
Использование:
Unset Hive key, ключ больше не существует
Чтобы полностью удалить ключ улья и его значение из памяти:
Если данный ключ улья был кэширован ранее, он также будет очищен от кэша.
Еще несколько специальных применений:
Обратите внимание: очистка всего содержимого кэша сразу не поддерживается для бэкенда кэша XCache
Многопеременное присвоение с использованием ассоциативного массива
Использование:
Вы можете добавить все имена ключей, используя 2-й аргумент $prefix
.
Чтобы кэшировать все Вары, установите положительное числовое целое значение $ttl
в секундах.
Возвращает все содержимое Улья в виде массива
Использование:
Скопируйте содержимое переменной hive в другую переменную
Возвращает доступную для записи ссылку на новый $dst
ключ улья. Если $dst
он уже существует в улье, он просто перезаписывается.
Использование:
Связать строку с переменной Hive string
Возвращает результат конкатенации. Примечание: если $key
он не существует в улье, то он автоматически создается в улье.
Использование:
Ключи подкачки и значения переменной массива улья
Использование:
Добавить элемент в конец переменной массива улья
Использование:
Удалить последний элемент переменной массива улья
Использование:
Добавить элемент в начало переменной массива hive
Использование:
Удалить первый элемент переменной массива улья
Возвращает переменную массива улья, сдвинутую влево, или NULL
если переменная массива улья пуста или не является массивом.Обратитевнимание: shift
используйте функцию PHP array_shift()
. Это означает, что все числовые ключи массива переменной Hive array будут изменены, чтобы начать отсчет с нуля, в то время как литеральные ключи не будут затронуты
Пример:
Объединить массив с переменной массива улья
Возвращает результирующий массив слияния. (Не касается значения ключа улья)
Пример:
Если параметр $keep
имеет значение TRUE, источник $key
в улье также обновляется.
Расширение переменной массива hive со значениями по умолчанию из $src
Этот метод предоставляет простой способ добавить некоторые значения по умолчанию в массив:
Если параметр $keep
имеет значение TRUE, источник $key
в улье также обновляется.
Преобразование обратной косой черты в косую черту
Использование:
Разделенная запятая, точка с запятой или разделенная трубой строка
Использование:
NB: по умолчанию пустые значения отфильтровываются. Установите $noempty
значение FALSE, чтобы предотвратить такое поведение.
Преобразование PHP-выражения/значения в сжатую экспортируемую строку
Эта функция позволяет преобразовать любое выражение PHP, значение, массив или любой объект в сжатую и экспортируемую строку.
Этот $detail
параметр определяет, следует ли рекурсивно входить во вложенные объекты или нет.
Пример с простым 2D массивом:
Сглаживайте значения массива и возвращайте их в виде строки CSV
Использование:
Преобразование строки snake_case в camelCase
Использование:
Преобразование строки camelCase в snake_case
Использование:
Возвращает -1, если указанное число отрицательно, 0, если ноль, или 1, если число положительное
Генерация 64-битного/базового хэша 36
Генерирует хэш для заданной строки (длина от 11 до 13)
Пример:
Возврат эквивалента в кодировке Base64
Пример:
Преобразование специальных символов в HTML-объекты
Кодирует такие символы, как & < >
и другие символы, основываясь на настройках кодирования ваших приложений. (по умолчанию: UTF-8)
Пример:
Преобразование специальных HTML-сущностей обратно в символы
Пример:
Удалите HTML-теги (кроме перечисленных) и непечатаемые символы, чтобы смягчить атаки XSS / code injection
$var
может быть либо аstring
, либо Ан array
. В последнем случае он будет рекурсивно пройден, чтобы очистить каждый элемент.
Примеры:
Аналогично clean (), за исключением того, что переменная передается по ссылке
Пример:
Возвращаемое строковое представление значения PHP
Возвращает значение PHP, полученное из строки
Возвращаемая форматированная строка с учетом локали
$format
Строка содержит один или несколько заполнителей, идентифицируемых индексом позиции, заключенным в фигурные скобки, причем начальный индекс равен 0. Заполнители заменяются значениями предоставленных аргументов.
Форматирование может стать более точным, если ожидаемый тип указан в заполнителях.
В настоящее время поддерживаются следующие типы:
Дата
дата, короткая
дата, длинная
дата, обычай, {exp}
время
время, короткое
время, обычай, {exp}
число, целое число
число, валюта
число, валюта, int
число, валюта, {char}
число, в процентах
число, десятичное число, {int}
множественное число, {exp}
Синтаксис множественного числа немного менее прост, так как он позволяет связать различные выходные данные в зависимости от количества входных данных.
Синтаксис множественного типа должен 0, plural,
начинаться со списка ключевых слов множественного числа, связанных с требуемым результатом. Допустимые ключевые слова: "* ноль*", " * один*", "* два * " и " *другой*".
Кроме того, вы можете вставить соответствующую цифру в выходные строки благодаря #
знаку, который будет автоматически заменен соответствующим числом, как показано в примере ниже:
Каждое ключевое слово множественного числа является необязательным, и вы можете, например, опустить ключевое слово множественного числа "два", если "другой" подходит для этого случая. Конечно, если вы опустите их все, то будут отображаться только цифры. Как правило, держите хотя бы ключевое слово "другое" во множественном числе в качестве запасного варианта.
Автоматическое форматирование переменных ульяПриятно помнить: F3, для вашего удобства и для того, чтобы чрезвычайно облегчить использование форматирования в ваших шаблонах, вы можете извлекать и форматировать переменные из улья с помощью одной команды:
Пример:
Назначение / автоматическое определение языка
Эта функция используется при загрузке фреймворка для автоматического определения возможного языка пользователя, просматривая заголовки HTTP-запросов, в частности заголовок Accept-Language, отправляемый браузером.
Пример:
Языковая переменная принимает тот же тип строки, что и заголовок HTTP Accept-Language, который представляет собой разделенный запятыми список 2-буквенных кодов языков, за которыми, возможно, следуют дефис и 2-буквенный код страны. NB: несмотря на то, что локали POSIX используют подчеркивание в качестве разделителя (es_BR.UTF-8), вы должны определить переменную языка с дефисом (es-BR). Файлы словарей следуют тому же правилу (es-BR.php / es-BR.ini).
Язык системы
Еще несколько примеров:
NB: загружается первая локаль, найденная на сервере. Убедитесь, что на вашем сервере установлены все локали, которые вы хотите поддерживать в своем приложении. На большинстве машин linux вы можете проверить это с помощью locale -a
и установить новые локали dpkg-reconfigure locales
. Некоторые конфигурации веб-серверов apache, возможно, нуждаются в перезапуске после этого, чтобы работать с новыми локалями.
Перенос записей лексикона в улей
Эта функция используется при загрузке фреймворка для автоматической загрузки файлов словаря, расположенных в пределах определенного пути в LOCALES
var.
Соберите url-адрес из псевдонима
Пример:
Замените маркированный URL-адрес значениями токенов текущего маршрута
Пример:
Если вы хотите конкретно определить маркеры в данном $url
случае , вы можете использовать $params
аргумент для этого:
Имитация HTTP-запроса
Это эмулирует HTTP-запрос, основанный на глаголе и ресурсе, определенном$pattern
.
$args
экспортируется как глобальная переменная соответствующего глагола ($_GET
, $_POST
или$_REQUEST
)
$headers
экспортируется как глобальные HTTP заголовки ($_SERVER[HTTP_…]
)
Тело HTTP-запроса $body
экспортируется как BODY
переменная улья для глаголов, не равных GET
or HEAD
. If $body
не определен, $args
получает URL-кодировку и экспортируется как BODY
Добавление [ajax]
к $pattern
издевательствам над вызовами AJAX
Добавление [sync]
к $pattern
издевательствам обычных (синхронных) вызовов
Добавление [cli]
к $pattern
вызовам командной строки mocks (CLI)
Базовый пример использования:
Базовый пример использования с именованным маршрутом и токеном:
Проанализируйте строку, содержащую пары ключ-значение, и используйте их в качестве маркеров маршрутизации
Пример:
Привязать шаблон маршрута к заданному обработчику
Базовый пример использования:
Схема Маршрута
$pattern
Var описывает шаблон маршрута, состоящий из типа запроса и URI запроса, разделенных пробелом char.
Глаголы
Возможные определения типа запроса (глагола), которые будет обрабатывать F3 , следующие: GET, POST, PUT, DELETE, HEAD, PATCH, CONNECT.
Вы можете объединить несколько глаголов, чтобы использовать один и тот же обработчик маршрута для всех них. Просто разделите их обуглившейся трубой, например GET|POST
.
Жетоны
URI запроса может содержать один или несколько маркеров, предназначенных для определения динамических маршрутов. Маркеры обозначаются @
символом перед их именем и могут быть дополнительно заключены в одиночные фигурные скобки { }
. Смотрите эти примеры:
Подстановочный знак
Вы также можете определить подстановочные знаки (/*
) в вашем URI маршрутизации. Кроме того, вы можете использовать их в сочетании с @
токенами.
Обратите внимание: var` PARAMS ' содержит все токены в виде именованного ключа, а также все токены и подстановочные знаки в виде числового ключа, в зависимости от их порядка появления.
Приведенный выше маршрут также работает с подкатегориями. Просто позвонить /path/cat/subcat/page1
Он даже работает с некоторыми другими подуровнями. Вам просто нужно разнести это значение с /
помощью разделителя-для обработки ваших подкатегорий. Что-то вроде /path/*/@pagetitle/@pagenum
этого тоже довольно просто.
Это становится сложным, когда вы пытаетесь использовать более одного подстановочного знака, потому что только первый /*
подстановочный знак может содержать неограниченные сегменты пути. Любые дальнейшие подстановочные знаки могут содержать только одну часть между косыми чертами (/
). Так что постарайтесь, чтобы все было просто.
Группы
Можно назначить несколько маршрутов одному и тому же обработчику маршрутов, используя массив маршрутов внутри $pattern
. Это будет выглядеть так:
Именованные Маршруты
Так F3 v3.2.0
как вы также можете присвоить имя своим маршрутам. Поэтому следуйте этой схеме:
Кроме того вы можете использовать существующее имя маршрута для сокращения дополнительных определений маршрута:
обработчик маршрута
Это может быть вызываемый метод класса, например 'Foo->bar' или 'Foo::bar', имя функции или анонимная функция.
F3 автоматически передает экземпляр фреймворка и маркеры маршрута классам контроллеров обработчиков маршрутов. Например:
Кэширование
Дросселирование Полосы Пропускания
Перенаправление на указанный URI
Пример использования:
Когда $url
это массив, он используется для перенаправления псевдонимов. Вы можете указать имя псевдонима в 1-м элементе массива, его параметры во 2-м и дополнительные элементы запроса в качестве 3-го элемента массива:
Этот $die
параметр можно использовать для отключения немедленного перенаправления, вместо этого скрипт продолжает работу после установки соответствующих заголовков. Это может быть полезно для модульного тестирования.
Перенаправление маршрута на другой URL-адрес
Это небольшой метод быстрого доступа между методами route и reroute к определенным маршрутам, которые просто предназначены для перенаправления клиента. $pattern
Аргумент принимает те же значения, что и метод маршрута. Ибо $url
вы можете использовать все, что также будет принято в соответствующем аргументе метода reroute.
Пример использования:
Предоставьте интерфейс ReST путем сопоставления команды HTTP методу класса
Пример использования:
Сопоставьте маршруты с входящим URI и вызовите их обработчик маршрутов
Пример использования:
После обработки URI входящего запроса шаблон маршрутизации, соответствующий этому URI, сохраняется в PATTERN
var, текущий URI HTTP-запроса-в URI
var, а метод запроса-в VERB
var. PARAMS
Var будет содержать все маркеры в виде именованных ключей, а также все маркеры и подстановочные знаки в виде цифровых ключей, в зависимости от их порядка появления.
Генерируйте ошибку 404, когда маркированный класс не существует.
Обратите внимание: если статический и динамический шаблон маршрута совпадают с текущим URI, то статический шаблон маршрута имеет приоритет.
Выполнить обратный вызов/крючки (поддерживает формат 'class - >method' )
Этот метод предоставляет возможность вызывать обратные вызовы и их аргументы. F3 распознает их как допустимые обратные вызовы:
Анонимные / лямбда-функции (они же замыкания)
array('class','method')
class::method
статический метод
class->method
эквивалентный array(new class,method)
$args
if specified предоставляет средство выполнения обратного вызова с параметрами.
Выполните указанные обратные вызовы последовательно; примените одни и те же аргументы ко всем обратным вызовам
Этот метод вызывает несколько обратных вызовов подряд:
Выполнить указанные обратные вызовы последовательно; ретранслировать результат предыдущего обратного вызова в качестве аргумента следующему обратному вызову
Нативная функция PHP
Нативная функция PHP
Нативная функция PHP
Создайте мьютекс, вызовите обратный вызов, а затем отбросьте владение, когда закончите
Аргументы могут быть переданы в обратный вызов:
Read file (с возможностью применения Unix LF в качестве стандартного окончания строки)
Если $lf
естьTRUE
, то преобразование EOL в формат UNIX LF выполняется для всех оканчивающихся строк.
Обратный путь относительно базового каталога
Пример:
Нативная функция PHP
Эксклюзивная запись файла
Если $append
есть TRUE
и $file
уже завершается, $data
то он добавляется к содержимому файла вместо того, чтобы перезаписывать его.
Возвращаемый экземпляр класса
Это используется для захвата экземпляра фреймворка в любой точке кода.
Отключить HTTP-клиент
Этот метод может быть удобен для прерывания соединения с клиентом и отправки ему текущего ответа, но на самом деле продолжить выполнение скрипта после этого момента для выполнения трудоемких задач, таких как отправка SMTP-почты или генерация больших PDF-файлов без каких-либо задержек для клиента.
Поиск IP-адреса посетителя по общим службам черного списка DNS
Преобразование токена JS-стиля в PHP-выражение
Пример:
Настройте фреймворк в соответствии с .настройки файла в стиле ini
Это позволит проанализировать конфигурационный файл, предоставленный фреймворком, $file
и настроить его с помощью переменных и маршрутов. Если указан 2-й аргумент$allow
, строки шаблона интерпретируются, что делает возможными динамические конфигурации:
Преобразование констант класса в массив
Пример, при условии, что у нас есть Foo\Bar
класс, определенный следующим образом:
вы можете получить доступ ко всем константам с префиксомSTATUS_
:
NB: передача объекта также работает: $f3->constants($bar,'STATUS_')
.
Выражение Dump (_echo_) с подсветкой синтаксиса
Выполнить обработчик ошибок
Вызов этой функции регистрирует ошибку и выполняет обработчик ONERROR, если он определен. В противном случае он будет отображать страницу ошибок по умолчанию в HTML для синхронных запросов или выдавать строку JSON для AJAX-запросов.
Отправка метаданных кэша на HTTP-клиент
Нет необходимости вызывать этот метод напрямую, поскольку он автоматически вызывается фреймворком во время выполнения, в зависимости от того, следует ли кэшировать страницу или нет. Фреймворк отправляет необходимые заголовки управления http-кэшем в браузер, так что вам не нужно отправлять их самостоятельно.
Применить подсветку синтаксиса
Применяет подсветку синтаксиса к заданной строке и возвращает выделенную строку.
Пример:
ВОЗВРАТ:
Имейте в виду, что вам нужен "код".таблица стилей css позволяет правильно видеть подсветку синтаксиса на страницах Вашего браузера. Вы можете включить его в свои страницы с помощьюcss "rel=" таблица стилей " / > (код.css упаковывается в папку framework ' lib/' )
Отправить заголовок состояния HTTP / 1.1; вернуть текстовый эквивалент кода состояния
Выполнение последовательности завершения работы фреймворка/приложения
Во-первых , изменяет текущий каталог PHP на каталог$cwd
, записывает данные сеанса и завершает сеанс вызовом функции session_commit()
PHP.
В качестве окончательного запасного варианта возникает ошибка HTTP, 500
если одно из следующих E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR
действий обнаружено и не обработано обработчиком завершения работы.
Рекурсивно вызывать обратный вызов для всех типов данных
Рекурсивный метод берет ваш смешанный $arg
и применяет $func
обратный вызов к любому значению глубокого вложенного массива или свойству объекта, которое может быть найдено, и возвращает копию $arg
. Вот небольшой пример:
Обратите внимание: для вызова обратного вызова `$func` на объектах `PHP >= 5.4` требуется. В противном случае объекты возвращаются без дальнейшей обработки. Пожалуйста, имейте в виду, что возвращаемые объекты являются клонами, и обратный вызов применяется только к доступным нестатическим свойствам.
Цикл до тех пор, пока обратный вызов не вернет TRUE (для длительного опроса)
HTTP-клиент отключается
Тайм-аут через $timeout
несколько секунд
Тайм-аут за одну секунду до достижения настроенного PHP max_execution_time
Повторное открытие сеанса завершается неудачей
Обратный $func
вызов возвращает значение boolean casted равное true
F3 закрывает сеанс после и снова открывает сеанс перед вызовом обратного $func
вызова, чтобы предотвратить блокировку сеанса, которая в противном случае блокировала бы одновременные запросы с одним и тем же сеансом.Обратите внимание: `$timeout` ограничен конфигурацией PHP `max_execution_time`.
Если $ttl
параметр равен > 0 и включен, указанная переменная будет кэшироваться в течение $ttl
нескольких секунд. Уже кэшированные Вары будут обновлены путем повторного использования старого времени истечения срока действия.
Если вам нужно кэшировать vars в течение бесконечного времени, проверьте метод .
Фреймворк имеет свои собственные . Вы можете изменить их, чтобы изменить поведение фреймворка, например:
Также можно установить PHP глобалы через . Эти 8 переменных автоматически синхронизируются с базовыми глобалами PHP.Примечание: Если вы устанавливаете или получаете доступ к ключу сеанса, сеанс запускается автоматически. Вам нет необходимости делать это самостоятельно.
Если возвращаемое значение представляет собой строку, содержащую один или несколько , аргументы могут передаваться непосредственно после имени ключа:
exists
это особенно полезно с :
$tags
определяет список разрешенных html-тегов, которые не будут удалены.Совет: рекомендуется использовать эту функцию для дезинфекции введенных формуляров.
В зависимости от системной переменной сериализатора этот метод преобразует что-либо в переносимое строковое выражение. Возможные значения-igbinary и php. F3 проверяет при запуске, доступен ли igbinary, и определяет его приоритетность, так как расширение igbinary работает намного быстрее и использует меньше дискового пространства для сериализации. Проверьте .
См для дальнейшего описания.
Примечание: F3 следует , не требуя наличия модуля PHP intl.
Используйте системную переменную LANGUAGE для получения и установки языков, так как она также обрабатывает зависимости, такие как установка локалей с помощью и изменение файлов словаря. системная переменная определяет язык по умолчанию, который будет использоваться, если ни один из обнаруженных языков не доступен в виде файла словаря.
Чтобы гарантировать, что метод и другие функции php, ориентированные на локализацию, работают так, как ожидалось, эта функция автоматически загружает системную локализацию. Например:
Файл словаря может быть php-файлом, возвращающим парный ассоциативный массив ключ-значение, или an .конфигурационный файл в формате ini-style. .
являются допустимыми ресурсами
как пример расширенного использования:
После обработки URI входящего запроса (инициированного ) вы найдете значение каждого из этих токенов в PARAMS
системной переменной в виде именованного ключа, например $f3->get('PARAMS.file')
. /- Марио.jpg'Обратите внимание: маршруты и соответствующие им глаголы сгруппированы по их шаблону URL. Статические маршруты предшествуют маршрутам с динамическими маркерами или подстановочными знаками.
Имена вставляются после глагола маршрута и предваряются символом@. Все именованные маршруты могут быть доступны системной переменной ALIASES для дальнейшей обработки в шаблонах или для перенаправления. Дополнительную информацию см. В руководстве пользователя по .
3-й аргумент $ttl
определяет время кэширования в секундах. Установка этого аргумента в положительное значение вызовет функцию для установки метаданных кэша в заголовке HTTP-ответа. Он также кэширует ответ маршрута, но кэшируются только запросы GET и HEAD.
Если CACHE
он выключен,$ttl
то будет управлять кэшем браузера только с помощью метаданных заголовка expire. Если CACHE
он включен и $ttl
для текущего обработчика URI запроса установлено положительное значение, F3 дополнительно кэширует выходные данные для этой страницы и обновляет их по $ttl
истечении срока действия. Подробнее об этом и .
Установите 4-й аргумент $kbps
на желаемое ограничение скорости, чтобы включить дросселирование. об этом читайте в руководстве пользователя.
Это также можно настроить в в пределах [redirects]
раздела.
Его синтаксис работает немного похоже на функцию маршрута, но вам не нужно определять метод HTTP-запроса в 1-м аргументе, потому что они сопоставляются как функции в классе, который вы продуцируете в $class
аргументе. .
$hooks
используется route()
методом для указания функций до и после выполненияbeforeroute()
, т. е.afterroute()
(см. раздел для получения дополнительных объяснений beforeroute()
иafterroute()
)
Этот метод вызывает обратный вызов последовательно, как , но применяет результат первой функции в качестве аргумента последующей функции, т. е.:
Чтобы скопировать файл, используйте собственную функцию PHP. Показано здесь для удобства.
Чтобы удалить файл, используйте собственную функцию PHP. Показано здесь для удобства.
Чтобы переместить файл, используйте собственную функцию PHP, меняющую путь во втором аргументе. Показано здесь для удобства.
-это кросс-платформенный механизм синхронизации доступа к ресурсам таким образом, что процесс, получивший мьютекс, получает эксклюзивный доступ к ресурсу. Другие процессы, пытающиеся получить тот же мьютекс, будут находиться в приостановленном состоянии до тех пор, пока мьютекс не будет освобожден.
Использует функцию PHP для чтения всего $file
текста и возврата его в виде строки. Возврат FALSE
после неудачи.
Чтобы переименовать файл, используйте встроенную функцию PHP. Показано здесь для удобства.
Использует функцию PHP с флагом LOCK_EX
PHP для получения эксклюзивной блокировки файла при переходе к записи.
Эта функция вызывается во время начальной загрузки приложения и будет искать IP-адрес посетителей по общим службам черного списка DNS, определенным . Это очень полезно для защиты вашего приложения от спам-ботов или DOS-атак.
Return TRUE
если IPv4 $ip
адрес присутствует в
Этот метод в основном используется , облегченным шаблонизатором шаблонов, для преобразования токенов в переменные.
Смотрите раздел руководства пользователя о , чтобы получить полное описание того, как настроить ваш ini-файл.
Обратите внимание: подсветка синтаксиса зависит от уровня .
Используйте этот метод для отправки клиенту различных , например
Затем он завершает работу приложения и вызывает обработчик завершения работы, определенный в .
$func
вызов вызывается один раз в секунду с аргументом $args
до тех пор, пока одно из следующих условий не завершит цикл: