Класс yii\mutex\FileMutex
| Наследование | yii\mutex\FileMutex » yii\mutex\Mutex » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/mutex/FileMutex.php |
FileMutex реализует механизм блокировки "mutex" через локальные файлы файловой системы.
Этот компонент опирается на функцию PHP flock().
Пример конфигурации приложения:
[
'components' => [
'mutex' => [
'class' => 'yii\mutex\FileMutex'
],
],
]
Примечание: этот компонент может поддерживать блокировки только для одного веб-сервера, вероятно, его будет недостаточно в случае использования облачного сервера.
Предупреждение: из-за природы функции flock() этот компонент ненадежен при использовании многопоточной серверной API, такой как ISAPI.
См. также yii\mutex\Mutex.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $autoRelease | boolean | Указывает, должны ли все блокировки, полученные в этом процессе (т.е. локальные блокировки), быть автоматически освобождены перед завершением выполнения сценария. | yii\mutex\Mutex |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $dirMode | integer | Разрешения для вновь созданных каталогов. | yii\mutex\FileMutex |
| $fileMode | integer | Разрешения для вновь созданных файлов блокировки. | yii\mutex\FileMutex |
| $mutexPath | string | Каталог для хранения файлов блокировки. | yii\mutex\FileMutex |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| acquire() | Получает блокировку по имени. | yii\mutex\Mutex |
| attachBehavior() | Присоединяет поведение к компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен вести себя компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, прикрепленный к событию с заданным именем. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует реализацию компонента mutex, предназначенную для операционных систем UNIX, GNU/Linux, Mac OS X и других подобных систем. | yii\mutex\FileMutex |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| release() | Освобождает полученную блокировку. Этот метод вернёт false, если блокировка не найдена. | yii\mutex\Mutex |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| acquireLock() | Получает блокировку с заданным именем. | yii\mutex\FileMutex |
| getLockFilePath() | Генерирует путь к файлу блокировки. | yii\mutex\FileMutex |
| releaseLock() | Освобождает блокировку с заданным именем. | yii\mutex\FileMutex |
Подробности свойств
$dirMode общедоступное свойство
Разрешения для вновь созданных каталогов. Это значение будет использоваться функцией PHP chmod(). Применяется umask. По умолчанию 0775, что означает, что каталог доступен для чтения и записи владельцу и группе, но только для чтения для других пользователей.
public integer $dirMode = 0775
$fileMode общедоступное свойство
Разрешения для вновь созданных файлов блокировки. Это значение будет использоваться функцией PHP chmod(). Применяется umask. Если не задано, разрешения определяются текущей средой.
public integer $fileMode = null
$mutexPath общедоступное свойство
Каталог для хранения файлов блокировки. Здесь можно использовать псевдоним пути. По умолчанию – подкаталог "mutex" в каталоге временных файлов приложения.
public string $mutexPath = '@runtime/mutex'
Подробности методов
acquireLock() защищённый метод
Получает блокировку по заданному имени.
| защищённый boolean acquireLock ( $name, $timeout = 0 ) | ||
|---|---|---|
| $name | string |
Имени блокировки. |
| $timeout | integer |
Время ожидания, пока блокировка не будет освобождена. |
| return | boolean |
Результат получения блокировки. |
getLockFilePath() защищённый метод (доступен с версии 2.0.10)
Генерирует путь к файлу блокировки.
| защищённый string getLockFilePath ( $name ) | ||
|---|---|---|
| $name | string | |
init() публичный метод
Инициализирует реализацию компонента мьютекса, предназначенного для операционных систем UNIX, GNU/Linux, Mac OS X и других операционных систем на базе UNIX.
| публичный void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException | |
releaseLock() защищённый метод
Освобождает блокировку по заданному имени.
| защищённый boolean releaseLock ( $name ) | ||
|---|---|---|
| $name | string |
Имени блокировки. |
| return | boolean |
Результат освобождения. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mutex-filemutex.html