Introduction to Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    Chapter 48. Zend_Memory

    48.1. Übersicht

    48.1.1. Einführung

    Die Zend_Memory Komponente ist dafür gedacht Daten in Systemen mit limitiertem Speicher zu Verwalten.

    Memory Objekte (Memory Container) werden durch den Memory Manager bei Anfrage erzeugt und transparent geswappt/geladen wenn dies notwendig wird.

    Wenn, zum Beispiel, ein gemanagtes Objekt erzeugt oder geladen wird, das den gesamten Speicherverbrauch überschreiten würde, der vorher definiert wurde, werden einige gemanagte Objekte in den Cache Speicher ausserhalb des Speichers kopiert. Auf diesen Weg wird der Gesamtspeicher der von den gemanagten Objekten verwendet wird nicht das benötigte Limit überschreiten.

    Der Memory Manager verwendet Zend_Cache backends als Speicheranbieter.

    Example 48.1. Verwenden der Zend_Memory Komponente

    Zend_Memory::factory() instantiiert das Speichermanager Objekt mit den definierten Backend Optionen.

    // Verzeichnis in welches die getauschten Speicherblöcke geschrieben werden
    $backendOptions = array(
        
    'cache_dir' => './tmp/'
    );

    $memoryManager Zend_Memory::factory('File'$backendOptions);

    $loadedFiles = array();

    for (
    $count 0$count 10000$count++) {
        
    $f fopen($fileNames[$count], 'rb');
        
    $data fread($ffilesize($fileNames[$count]));
        
    $fclose($f);

        
    $loadedFiles[] = $memoryManager->create($data);
    }

    echo 
    $loadedFiles[$index1]->value;

    $loadedFiles[$index2]->value $newValue;

    $loadedFiles[$index3]->value[$charIndex] = '_';

    48.1.2. Theorie der Verwendung

    Die Zend_Memory Komponente arbeitet mit den folgenden Konzepten:

    • Memory Manager

    • Memory Container

    • Verschlüsseltes Memory Objekt

    • Verschiebbares Memory Objekt

    48.1.2.1. Memory Manager

    Der Memory Manager erzeugt Memory Objekte (gesperrt oder verschiebbar) durch Anfrage der Anwendung des Benutzers und gibt diese in einem Memory Container Objekt zurück.

    48.1.2.2. Memory Container

    Der Memory Container hat ein virtuelles oder aktuelles Attribut value vom Typ String. Dieses Attribut enthält Datenwerte die bei der Erstellung des Memory Objektes definiert werden.

    Es kann mit value Attributen wie auch mit Objekt Eigenschaften gearbeitet werden.

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

    echo 
    $memObject->value;

    $memObject->value $newValue;

    $memObject->value[$index] = '_';

    echo 
    ord($memObject->value[$index1]);

    $memObject->value substr($memObject->value$start$length);
    [Note] Note

    Wenn eine PHP Version vor 5.2 verwendet wird, sollte stattdessen die getRef() Methode verwendet werden statt direkt auf die Wert Eigenschaften zuzugreifen.

    48.1.2.3. Verschlüsselter Memory

    Verschlüsselte Speicher Objekte werden immer im Speicher gespeichert. Daten welche im verschlüsselten Speicher gespeichert sind, werden niemals in das Cache Backend getauscht.

    48.1.2.4. Verschiebbarer Memory

    Verschiebbare Memory Objekte werden transparent geswappt und geladen von und in das Cache Backend durch Zend_Memory wenn das notwendig wird.

    Der Memory Manager swappt keine Objekte die eine kleinere Größe als das definierte Minimum besitzen, und zwar aus Gründen der Geschwindigkeit. Siehe diesen Abschnitt für mehr Details.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...