Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  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 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    Chapitre 48. Zend_Memory

    48.1. Présentation

    48.1.1. Introduction

    Le composant Zend_Memory est destiné à gérer des données dans un environnement où la mémoire est limitée.

    Les objets mémoire (conteneurs de mémoire) sont produits par le manager de mémoire sur demande et mis en cache/chargés d'une manière transparente quand c'est nécessaire.

    Par exemple, si la création ou le chargement d'un objet entraîne une utilisation de mémoire totale excédant la limite que vous spécifiez, certains objets gérés sont copiés en cache à l'extérieur de la mémoire. De cette façon, la mémoire totale utilisée par les objets gérés n'excède pas la limite que vous devez mettre en application.

    Le manager de mémoire utilise les backends Zend_Cache comme fournisseurs de stockage.

    Exemple 48.1. Utiliser le composant Zend_Memory

    Zend_Memory::factory() instancie l'objet de management de la mémoire avec les options spécifiques du backend.

    $backendOptions = array(
        
    'cache_dir' => './tmp/'
        
    // Dossier où les blocks de mémoire peuvent être stockés
    );

    $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. Aspect théorique

    Zend_Memory travaille avec les concepts suivants :

    • Manager de mémoire

    • Conteneur de mémoire

    • Objet de mémoire verrouillé

    • Objet de mémoire mobile

    48.1.2.1. Manager de mémoire

    Le manager de mémoire produit des objets de mémoire (verrouillé ou mobile) sur demande de l'utilisateur et les retourne encapsulé dans un objet conteneur de mémoire.

    48.1.2.2. Conteneur de mémoire

    Le conteneur de mémoire a un attribut value virtuel ou réel de type chaîne de caractères. Cet attribut contient la valeur de donnée indiquée au moment de la création de l'objet mémoire.

    Vous pouvez exploiter cet attribut value comme une propriété d'objet :

    $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

    Si vous utilisez une version de PHP inférieure à 5.2, utilisez la méthode getRef() au lieu d'accéder directement à la valeur de la propriété.

    48.1.2.3. Objet de mémoire verrouillé

    Les objets de mémoire verrouillés sont toujours stockés dans la mémoire. Les données stockées dans la mémoire verrouillée ne sont jamais mis en cache.

    48.1.2.4. Objet de mémoire mobile

    Les objets de mémoire mobiles sont mis en cache et chargés de manière transparente de/vers le cache par Zend_Memory si c'est nécessaire.

    Le manager de mémoire ne met pas en cache des objets ayant une taille plus petite que le minimum spécifié dans un soucis de performances. Voir Section 48.2.3.2, « MinSize (taille minimum) » pour plus de détails.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...