Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

ZEND FRAMEWORK: Класс Zend_Memory


PHP 5: Новые возможности.

Класс Zend_Memory предназначен для управления данными в окружении с ограниченной памятью.

Объекты памяти (контейнеры) генерируются менеджером памяти по запросу и прозрачно выгружаются и загружаются при необходимости с помощью фоновых адаптеров Zend_Cache.

Класс Zend_Memory оперирует со следующими концепциями.

Менеджер памяти (memory manager). Генерирует запертые или передвигаемые объекты памяти по запросу пользовательского приложения и возвращает их в оболочке контейнера памяти.

Контейнер памяти (memory container). Имеет атрибут value строкового типа, отражающий время своего создания.

Запертый объект памяти (locked memory object). Всегда сохраняется в памяти и никогда не обменивается с кешем.

Передвигаемый объект памяти (movable memory object). Может при необходимости выгружаться в кеш и загружаться обратно.

Создать менеджер памяти (объект класса Zend_Memory_Manager) можно с помощью статического метода Zend_Memory::factory() с двумя параметрами: названием фонового адаптера Zend_Cache и необязательным массивом опций для этого адаптера.

$memoryManager = Zend_Memory::factory('File', $backendOptions);
[Замечание]Замечание

Можно также использовать в качестве названия фонового адаптера специальное имя None. При этом никаких операций по обмену данных с кешем производиться не будет.

$memoryManager
= Zend_Memory::factory('None');

Текущий лимит памяти в байтах может быть получен с помощью метода getMemoryLimit(), а установлен - с помощью метода setMemoryLimit(). Негативное значение означает отсутствие ограничений. По умолчанию лимит равен двум третям значения директивы memory_limit в файле php.ini либо отсутствует, если это значение не установлено.

$oldLimit = $memoryManager->getMemoryLimit();
$memoryManager->getMemoryLimit($newLimit);

Получить и установить минимальный размер объекта памяти, который подлежит обмену с кешем, можно с помощью методов getMinSize() и setMinSize() соответственно. По умолчанию он равен 16384 байтам. Запрет обмена для слишком маленьких объектов позволяет повысить производительность, избегая лишних операций чтения/записи.

Объекты памяти создаются при помощи методов create() (передвигаемые) и createLocked() (запертые). В качестве необязательного параметра этим методам передаются данные для инициализации объекта (по умолчанию - пустая строка).

$memObject = $memoryManager->create($data);
$memObject = $memoryManager->createLocked($data);

Разрушаются объекты памяти автоматически.

Как передвигаемые, так и запертые объекты воплощают один и тот же интерфейс: Zend_Memory_Container_Interface, в который входят следующие методы.

Метод getRef(). Возвращает ссылку на значение объекта.

Метод touch(). Сигнализирует об изменении значения объекта.

Метод lock(). Запирает объект памяти.

Метод unlock(). Отпирает объект памяти (делает его передвигаемым).

Метод isLocked(). Проверяет, является ли объект запертым.

Created with DocBook


В избранное