Spec-Zone.ru › CakePHP 3.4

Класс CounterCacheBehavior

Поведение CounterCache

Разрешает моделям кэшировать количество подключений в заданном отношении.

Примеры с моделью Post, принадлежащей модели User

Регулярный кэш счетчика

[
    'Users' => [
        'post_count'
    ]
]

Кэш счетчика со scope

[
    'Users' => [
        'posts_published' => [
            'conditions' => [
                'published' => true
            ]
        ]
    ]
]

Кэш счетчика с использованием пользовательского поиска

[
    'Users' => [
        'posts_published' => [
            'finder' => 'published' // Will be using findPublished()
        ]
    ]
]

Кэш счетчика с использованием лямбда-функции, возвращающей счетчик. Это эквивалентно примеру #2

[
    'Users' => [
        'posts_published' => function (Event $event, EntityInterface $entity, Table $table) {
            $query = $table->find('all')->where([
                'published' => true,
                'user_id' => $entity->get('user_id')
            ]);
            return $query->count();
         }
    ]
]

Игнорировать обновление поля, если оно модифицировано

[
    'Users' => [
        'posts_published' => [
            'ignoreDirty' => true
        ]
    ]
]

Вы можете полностью отключить обновления счетчика, передав опцию ignoreCounterCache в операцию сохранения:

$this->Articles->save($article, ['ignoreCounterCache' => true]);
Cake\ORM\Behavior implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait
Extended by Cake\ORM\Behavior\CounterCacheBehavior
Пространство имен: Cake\ORM\Behavior
Расположение: ORM/Behavior/CounterCacheBehavior.php

Краткое описание свойств

  • $_ignoreDirty protected
    array
    Хранение полей, которые должны быть проигнорированы

Унаследованные свойства

  • _defaultConfig, _reflectionCache, _table _config, _configInitialized

Краткое описание методов

  • _getCount() protected
    Получает и возвращает счет для одного поля в ассоциации
  • _processAssociation() protected
    Обновляет кэш счетчика для одной ассоциации
  • _processAssociations() protected
    Перебирает все ассоциации и обновляет кэши счетчиков.
  • afterDelete() public
    Обработчик afterDelete.
  • afterSave() public
    Обработчик afterSave.
  • beforeSave() public
    Обработчик beforeSave.

Подробное описание методов

_getCount()source protected

_getCount( array $config , array $conditions )

Получает и возвращает счет для одного поля в ассоциации

Параметры

массив $config
Настройка кэша счетчика для одного поля
массив $conditions
Дополнительные условия, заданные для запроса

Возвращает

целое число
Количество отношений, соответствующих заданной конфигурации и условиям

_processAssociation()source protected

_processAssociation( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity , Cake\ORM\Association $assoc , array $settings )

Обновляет кэш счетчика для одной ассоциации

Параметры

Cake\Event\Event $event
Экземпляр события.
Cake\Datasource\EntityInterface $entity
Сущность
Cake\ORM\Association $assoc
Объект ассоциации
массив $settings
Настройки кэша счетчика для этой ассоциации

_processAssociations()source protected

_processAssociations( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity )

Перебирает все ассоциации и обновляет кэши счетчиков.

Параметры

Cake\Event\Event $event
Экземпляр события.
Cake\Datasource\EntityInterface $entity
Сущность.

afterDelete()source public

afterDelete( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity , ArrayObject $options )

Обработчик afterDelete.

Обеспечивает обновление кэша счетчика при удалении записи.

Параметры

Cake\Event\Event $event
Событие afterDelete, которое было сгенерировано.
Cake\Datasource\EntityInterface $entity
Сущность, которая была удалена.
ArrayObject $options
Опции для запроса

afterSave()source public

afterSave( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity , ArrayObject $options )

Обработчик afterSave.

Обеспечивает обновление кэша счетчика при создании или обновлении новой записи.

Параметры

Cake\Event\Event $event
Событие afterSave, которое было сгенерировано.
Cake\Datasource\EntityInterface $entity
Сущность, которая была сохранена.
ArrayObject $options
Опции для запроса

beforeSave()source public

beforeSave( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity , ArrayObject $options )

Обработчик beforeSave.

Проверка, если поле, которое должно быть проигнорировано, модифицировано

Параметры

Cake\Event\Event $event
Событие beforeSave, которое было сгенерировано
Cake\Datasource\EntityInterface $entity
Сущность, которая будет сохранена
ArrayObject $options
Опции для запроса

Методы, унаследованные от Cake\ORM\Behavior

__construct()source public

__construct( Cake\ORM\Table $table , array $config [] )

Конструктор

Объединяет конфигурацию с по умолчанию и сохраняет в свойстве config

Параметры

Cake\ORM\Table $table
Таблица, к которой прикреплено это поведение.
массив $config необязательно []
Конфигурация этого поведения.

_reflectionCache()source protected

_reflectionCache( )

Получение методов, реализованных этим поведением

Использует метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ будут проигнорированы, как и методы, объявленные в Cake\ORM\Behavior

Возвращает

массив

_resolveMethodAliases()source protected

_resolveMethodAliases( string $key , array $defaults , array $config )

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

Параметры

строка $key
Ключ для фильтрации.
массив $defaults
Набор отображений методов по умолчанию.
массив $config
Настройка пользовательских отображений методов.

Возвращает

массив
Список конфигурации без дубликатов.

getTable()source public

getTable( )

Получить экземпляр таблицы, к которому привязано это поведение.

Возвращает

Cake\ORM\Table
Привязанный экземпляр таблицы.

implementedEvents()source public

implementedEvents( )

Получение обратных вызовов модели, в которых заинтересовано это поведение.

Определяя один из методов обратного вызова, предполагается, что поведение заинтересовано в соответствующем событии.

Переопределите этот метод, если вам необходимо добавить нестандартные обработчики событий. Или если вы хотите, чтобы ваше поведение прослушивало нестандартные события.

Возвращает

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

implementedFinders()source public

implementedFinders( )

implementedFinders

Предоставляет отображение «псевдоним» → «имя метода», описывающее, какие поискеры реализует поведение. Пример:

[
   'this' => 'findThis',
   'alias' => 'findMethodName'
 ]

В приведенном выше примере вызов $Table->find('this') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()

Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. Примеры см. в основных поведениях.

Возвращает

array

implementedMethods()source public

implementedMethods( )

implementedMethods

Предоставляет отображение «псевдоним» → «имя метода», описывающее, какие методы реализует поведение. Пример:

[
   'method' => 'method',
   'aliasedmethod' => 'somethingElse'
 ]

В приведенном выше примере вызов $Table->method() вызовет $Behavior->method(), а вызов $Table->aliasedmethod() вызовет $Behavior->somethingElse()

Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. Примеры см. в основных поведениях.

Возвращает

array

initialize()source public

initialize( array $config )

Метод-обработчик инициализации.

Реализуйте этот метод, чтобы не приходилось перезаписывать конструктор и вызывать родительский.

Параметры

массив $config
Настройки конфигурации, предоставленные этому поведению.

verifyConfig()source public

verifyConfig( )

verifyConfig

Проверяет, что реализованные ключи содержат значения, указывающие на вызываемые элементы.

Исключения

Cake\Core\Exception\Exception
если конфигурация неверна

Используемые методы из Cake\Core\InstanceConfigTrait

_configDelete()source protected

_configDelete( string $key )

Удаляет отдельный ключ конфигурации.

Параметры

строка $key
Ключ для удаления.

Исключения

Cake\Core\Exception\Exception
если происходит попытка перезаписи существующей конфигурации

_configRead()source protected

_configRead( string|null $key )

Считывает ключ конфигурации.

Параметры

строка|null $key
Ключ для чтения.

Возвращает

смешанный

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge false )

Записывает ключ конфигурации.

Параметры

строка|массив $key
Ключ для записи.
смешанный $value
Значение для записи.
булево|строка $merge необязательно false

Истина для рекурсивного слияния, «shallow» для простого слияния, ложь для перезаписи, по умолчанию ложь.

Исключения

Cake\Core\Exception\Exception
если происходит попытка перезаписи существующей конфигурации

config()source public

config( string|array|null $key null , mixed|null $value null , boolean $merge true )

Получение/Установка конфигурации.

Использование

Чтение всей конфигурации:

$this->config();

Чтение определенного значения:

$this->config('key');

Чтение вложенного значения:

$this->config('some.nested.key');

Установка определенного значения:

$this->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Устарело

3.4.0 используйте setConfig()/getConfig() вместо этого.

Параметры

строка|массив|null $key необязательно null
Ключ для получения/установки или полный массив конфигураций.
смешанный|null $value необязательно null
Значение для установки.
булево $merge необязательно true
Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию истинно.

Возвращает

смешанный
Значение конфигурации, которое считывается, или сам объект при операциях записи.

Исключения

Cake\Core\Exception\Exception
При попытке установить недействительный ключ.

configShallow()source public

configShallow( string|array $key , mixed|null $value null )

Объединяет предоставленную конфигурацию с существующей. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

Установка определенного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или полный массив конфигураций.
смешанный|null $value необязательно null
Значение для установки.

Возвращает


$this

getConfig()source public

getConfig( string|null $key null , mixed $default null )

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определенного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

строка|null $key необязательно null
Ключ для получения или null для всей конфигурации.
смешанный $default необязательно null
Возвращаемое значение, когда ключ не существует.

Возвращает

смешанный
Значение конфигурации, которое считывается.

setConfig()source public

setConfig( string|array $key , mixed|null $value null , boolean $merge true )

Устанавливает конфигурацию.

Использование

Установка определенного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или полный массив конфигураций.
смешанный|null $value необязательно null
Значение для установки.
булево $merge необязательно true
Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию истинно.

Возвращает


$this

Исключения

Cake\Core\Exception\Exception
При попытке установить недействительный ключ.

Подробные сведения о свойствах

$_ignoreDirtysource

protected массив

Хранит поля, которые следует игнорировать

[]

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.ORM.Behavior.CounterCacheBehavior.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API