| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.memory.memory-manager">
- <title>Manager de mémoire</title>
- <sect2 id="zend.memory.memory-manager.creation">
- <title>Créer un manager de mémoire</title>
- <para>
- Vous pouvez créer un nouveau manager de mémoire (objet
- <classname>Zend_Memory_Manager</classname>) en utilisant la méthode
- <methodname>Zend_Memory::factory($backendName [, $backendOprions])</methodname>.
- </para>
- <para>
- Le premier argument <varname>$backendName</varname> est le nom d'un type de backend
- supporté par <classname>Zend_Cache</classname>
- </para>
- <para>
- Le second argument <varname>$backendOptions</varname> est un tableau optionnel indiquant
- les options du backend.
- </para>
- <programlisting language="php"><![CDATA[
- $backendOptions = array(
- 'cache_dir' => './tmp/'
- // Dossier où les blocks de mémoire peuvent être stockés
- );
- $memoryManager = Zend_Memory::factory('File', $backendOptions);
- ]]></programlisting>
- <para>
- Zend_Memory utilise les <link linkend="zend.cache.backends">backends
- Zend_Cache</link> comme fournisseurs de stockage.
- </para>
- <para>
- Vous pouvez de plus utiliser le nom spécial "None" en tant que nom de
- backend supplémentaire de <classname>Zend_Cache</classname>. <programlisting language="php"><![CDATA[
- $memoryManager = Zend_Memory::factory('None');
- ]]></programlisting></para>
- <para>
- Si vous utilisez "None", alors le manager de mémoire ne mettra pas en
- cache les blocks de mémoire. Ceci est intéressant si vous savez que la mémoire n'est pas
- limitée ou la taille complète des objets n'atteint jamais la limite de mémoire.
- </para>
- <para>Le backend "None" ne nécessite aucune option.</para>
- </sect2>
- <sect2 id="zend.memory.memory-manager.objects-management">
- <title>Manager les objets mémoire</title>
- <para>
- Cette section décrit la création et la destruction d'objet de mémoire, et les
- réglages du manager de mémoire.
- </para>
- <sect3 id="zend.memory.memory-manager.objects-management.movable">
- <title>Créer des objets mobiles</title>
- <para>
- Créer des objets mobiles (objets qui peuvent être mis en cache) en utilisant
- la méthode <methodname>Zend_Memory_Manager::create([$data])</methodname> :
- <programlisting language="php"><![CDATA[
- $memObject = $memoryManager->create($data);
- ]]></programlisting></para>
- <para>
- L'argument <varname>$data</varname> est optionnel et utilisé pour initialiser la
- valeur de l'objet. Si l'argument <varname>$data</varname> est omis, la valeur est une
- chaîne vide.
- </para>
- </sect3>
- <sect3 id="zend.memory.memory-manager.objects-management.locked">
- <title>Créer des objets verrouillés</title>
- <para>
- Créer des objets verrouillés (objets qui ne doivent pas être mis en cache) en
- utilisant la méthode
- <methodname>Zend_Memory_Manager::createLocked([$data])</methodname> : <programlisting
- role="php"><![CDATA[
- $memObject = $memoryManager->createLocked($data);
- ]]></programlisting></para>
- <para>
- L'argument <varname>$data</varname> est optionnel et utilisé pour initialiser la
- valeur de l'objet. Si l'argument <varname>$data</varname> est omis, la valeur est une
- chaîne vide.
- </para>
- </sect3>
- <sect3 id="zend.memory.memory-manager.objects-management.destruction">
- <title>Détruire des objets</title>
- <para>
- Les objets mémoire sont automatiquement détruits et effacés de la mémoire
- quand ils sont hors de portée : <programlisting language="php"><![CDATA[
- function foo()
- {
- global $memoryManager, $memList;
- ...
- $memObject1 = $memoryManager->create($data1);
- $memObject2 = $memoryManager->create($data2);
- $memObject3 = $memoryManager->create($data3);
- ...
- $memList[] = $memObject3;
- ...
- unset($memObject2); // $memObject2 est détruit ici
- ...
- // $memObject1 est détruit ici
- // mais $memObject3 est toujours référencé par $memList
- // et n'est pas détruit
- }
- ]]></programlisting></para>
- <para>Ceci s'applique aux objets mobiles et verrouillés.</para>
- </sect3>
- </sect2>
- <sect2 id="zend.memory.memory-manager.settings">
- <title>Régler le manager de mémoire</title>
- <sect3 id="zend.memory.memory-manager.settings.memory-limit">
- <title>Mémoire limite</title>
- <para>
- La mémoire limite est le nombre d'octets autorisés à être utilisés par des
- objets mobiles chargés.
- </para>
- <para>
- Si le chargement ou la création d'un objet entraîne l'utilisation de mémoire
- excédant cette limite, alors le manager met en cache un certain nombre
- d'objet.
- </para>
- <para>
- Vous pouvez récupérer et régler la mémoire limite en utilisant les méthodes
- <methodname>getMemoryLimit()</methodname> et <methodname>setMemoryLimit($newLimit)</methodname> :
- <programlisting language="php"><![CDATA[
- $oldLimit = $memoryManager->getMemoryLimit();
- // Récupére la mémoire limite en octets
- $memoryManager->setMemoryLimit($newLimit);
- // Règle la mémoire limite en octets
- ]]></programlisting></para>
- <para>Une valeur négative pour limite de mémoire équivaut à "pas de limite".</para>
- <para>
- La valeur par défaut est deux-tiers de la valeur de
- "memory_limit" dans le php.ini ou "no limit" (-1) si
- "memory_limit" n'est pas réglé dans le php.ini.
- </para>
- </sect3>
- <sect3 id="zend.memory.memory-manager.settings.min-size">
- <title>MinSize (taille minimum)</title>
- <para>
- <code>MinSize</code> est la taille minimale des objets de mémoire, qui peuvent
- être mis en cache par le manager de mémoire. Le manager ne met pas en cache des
- objets plus petits que cette valeur. Ceci réduit le nombre d'opérations de mise de
- cache/chargement
- </para>
- <para>
- Vous pouvez récupérer et régler la taille minimale en utilisant les méthodes
- <methodname>getMinSize()</methodname> et <methodname>setMinSize($newSize)</methodname> : <programlisting
- role="php"><![CDATA[
- $oldMinSize = $memoryManager->getMinSize();
- // Récupère la taille minimale en octets
- $memoryManager->setMinSize($newSize);
- // Règle la taille minimale en octets
- ]]></programlisting></para>
- <para>La taille minimum par défaut est 16KB (16384 octets).</para>
- </sect3>
- </sect2>
- </sect1>
|