Spec-Zone.ru › CakePHP 3.3

Класс CounterCacheBehavior

Поведение CounterCache

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

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

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

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

Кэширование счетчика с областью

[
    '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
        ]
    ]
]
Cake\ORM\Behavior implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait
Расширяется 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 )

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

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

Параметры

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

afterSave()source public

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

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

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

Параметры

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

beforeSave()source public

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

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

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

Параметры

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

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

__construct()source public

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

Конструктор

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

Параметры

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

_reflectionCache()source protected

_reflectionCache( )

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

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

Возвращаемое значение

массив

_resolveMethodAliases()source protected

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

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

Параметры

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

Возвращаемое значение

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

implementedEvents()source public

implementedEvents( )

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

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

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

Возвращаемое значение

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

implementedFinders()source public

implementedFinders( )

implementedFinders

Предоставляет отображение alias->имя_метода, которые реализует поведение. Пример:

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

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

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

Возвращаемое значение

массив

implementedMethods()source public

implementedMethods( )

implementedMethods

Предоставляет отображение alias->имя_метода, которые реализует поведение. Пример:

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

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

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

Возвращаемое значение

массив

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

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Исключения

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']);

Параметры

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

Возвращает

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

Исключения

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

configShallow()source public

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

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

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

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

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

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

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

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

Параметры

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

Возвращает


$this Сам объект.

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

$_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.3/class-Cake.ORM.Behavior.CounterCacheBehavior.html

Spec-Zone.ru

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