<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.yac.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'yac.dump.php',
    1 => 'Yac::dump',
    2 => 'Vuelca las entradas de la cach&eacute; para su inspecci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'class.yac.php',
    1 => 'Yac',
  ),
  'prev' => 
  array (
    0 => 'yac.delete.php',
    1 => 'Yac::delete',
  ),
  'next' => 
  array (
    0 => 'yac.flush.php',
    1 => 'Yac::flush',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/yac/yac/dump.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="yac.dump" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Yac::dump</h1>
  <p class="verinfo">(PECL yac &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">Yac::dump</span> &mdash; <span class="dc-title">Vuelca las entradas de la caché para su inspección</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-yac.dump-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>Yac::dump</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$limit</code><span class="initializer"> = 100</span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$offset</code><span class="initializer"> = 0</span></span>): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>

  <p class="simpara">
   Vuelca los metadatos de las entradas almacenadas actualmente en la caché.
   Los valores en sí no son devueltos.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-yac.dump-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">limit</code></dt>
    <dd>
     <p class="simpara">
      Número máximo de entradas a devolver.
     </p>
     <p class="simpara">
      Pasar <code class="literal">-1</code> como <code class="parameter">limit</code> vuelca
      todas las entradas que la caché contiene en ese momento. Es de tener en
      cuenta que construir la lista completa puede consumir una cantidad
      considerable de memoria en una caché grande; cuando la memoria importa,
      es preferible recorrer las entradas por páginas con
      <code class="parameter">limit</code> y <code class="parameter">offset</code>.
     </p>
    </dd>
   
   
    <dt><code class="parameter">offset</code></dt>
    <dd>
     <p class="simpara">
      Número de entradas a omitir antes de empezar a recopilar. Este parámetro
      está disponible a partir de PECL yac 2.4.0; las versiones anteriores
      siempre comienzan por la primera entrada. Combinado con
      <code class="parameter">limit</code>, permite recorrer por páginas una caché que
      contiene más entradas de las que una sola llamada puede devolver.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-yac.dump-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> con un elemento por cada entrada volcada. Cada
   elemento es a su vez un array que describe la entrada:
  </p>
  <dl>
   
    <dt><code class="literal">index</code></dt>
    <dd><p class="simpara">
     El índice de la ranura de la entrada en la tabla hash.
    </p></dd>
   
   
    <dt><code class="literal">hash</code></dt>
    <dd><p class="simpara">
     El hash de 64 bits de la clave, utilizado para el sondeo de ranuras.
    </p></dd>
   
   
    <dt><code class="literal">crc</code></dt>
    <dd><p class="simpara">
     La suma de comprobación CRC32 del valor almacenado, utilizada para
     detectar lecturas inconsistentes. <code class="literal">0</code> para las entradas
     empotradas, que no tienen bloque de valor.
    </p></dd>
   
   
    <dt><code class="literal">ttl</code></dt>
    <dd><p class="simpara">
     La marca de tiempo de expiración (tiempo Unix). <code class="literal">0</code>
     significa que la entrada nunca expira por tiempo. Es de tener en cuenta
     que <span class="methodname"><a href="yac.delete.php" class="methodname">Yac::delete()</a></span> solamente marca una entrada como
     expirada, por lo que las entradas eliminadas pueden seguir apareciendo en
     el volcado; un <code class="literal">ttl</code> distinto de cero situado en el
     pasado indica una entrada expirada o eliminada.
    </p></dd>
   
   
    <dt><code class="literal">k_len</code></dt>
    <dd><p class="simpara">
     La longitud de la clave, en bytes.
    </p></dd>
   
   
    <dt><code class="literal">v_len</code></dt>
    <dd><p class="simpara">
     La longitud del valor, en bytes. Para las entradas comprimidas se trata de
     la longitud del valor <em>original</em> antes de la compresión
     (a partir de yac 2.4.0; las versiones anteriores informaban de la longitud
     almacenada, ya comprimida).
    </p></dd>
   
   
    <dt><code class="literal">c_len</code></dt>
    <dd><p class="simpara">
     Presente únicamente para las entradas comprimidas (a partir de yac 2.4.0):
     la longitud de la carga útil comprimida realmente almacenada en la memoria
     compartida, en bytes. Comparar <code class="literal">c_len</code> con
     <code class="literal">v_len</code> muestra cuánto ahorra la compresión en cada
     entrada.
    </p></dd>
   
   
    <dt><code class="literal">size</code></dt>
    <dd><p class="simpara">
     El tamaño asignado al bloque de valor en la memoria compartida, en bytes.
     <code class="literal">0</code> para las entradas empotradas.
    </p></dd>
   
   
    <dt><code class="literal">atime</code></dt>
    <dd><p class="simpara">
     La hora del último acceso (tiempo Unix), actualizada en cada
     <span class="methodname"><a href="yac.get.php" class="methodname">Yac::get()</a></span> con éxito. Cuando la caché está llena, la
     entrada con el <code class="literal">atime</code> más antiguo de entre las ranuras
     candidatas es la primera en ser desalojada (a partir de yac 2.4.0).
    </p></dd>
   
   
    <dt><code class="literal">hits</code></dt>
    <dd><p class="simpara">
     Un contador de aciertos por entrada, incrementado en cada
     <span class="methodname"><a href="yac.get.php" class="methodname">Yac::get()</a></span> con éxito y reiniciado cuando la entrada
     es sobrescrita por un nuevo <span class="methodname"><a href="yac.set.php" class="methodname">Yac::set()</a></span> o
     <span class="methodname"><a href="yac.add.php" class="methodname">Yac::add()</a></span> (a partir de yac 2.4.0).
    </p></dd>
   
   
    <dt><code class="literal">embedded</code></dt>
    <dd><p class="simpara">
     Indica si el valor se almacena directamente dentro de la ranura en lugar de
     en un bloque de valor separado (a partir de yac 2.4.0). Los valores
     pequeños — <strong><code><a href="reserved.constants.php#constant.null">NULL</a></code></strong>, booleanos, enteros pequeños, cadenas
     de hasta 7 bytes y arrays vacíos — se incrustan de esta forma y no reservan
     memoria de valor alguna; para ellos <code class="literal">crc</code> y
     <code class="literal">size</code> se indican como <code class="literal">0</code>.
    </p></dd>
   
   
    <dt><code class="literal">key</code></dt>
    <dd><p class="simpara">
     La clave de la caché, sin ningún prefijo de instancia.
    </p></dd>
   
  </dl>
 </div>


 <div class="refsect1 examples" id="refsect1-yac.dump-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo de <span class="methodname"><strong>Yac::dump()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$yac </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yac</span><span style="color: #007700">();
</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">, </span><span style="color: #DD0000">"bar"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"baz"</span><span style="color: #007700">, </span><span style="color: #DD0000">"qux"</span><span style="color: #007700">);

</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dump</span><span style="color: #007700">());
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>Resultado del ejemplo anterior
es similar a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Array
(
    [0] =&gt; Array
        (
            [index] =&gt; 12345
            [hash] =&gt; 14463105906481965911
            [crc] =&gt; 0
            [ttl] =&gt; 0
            [k_len] =&gt; 3
            [v_len] =&gt; 3
            [size] =&gt; 0
            [atime] =&gt; 1725955200
            [hits] =&gt; 0
            [embedded] =&gt; 1
            [key] =&gt; foo
        )

    [1] =&gt; Array
        (
            [index] =&gt; 12987
            [hash] =&gt; 15132029420525657053
            [crc] =&gt; 0
            [ttl] =&gt; 0
            [k_len] =&gt; 3
            [v_len] =&gt; 3
            [size] =&gt; 0
            [atime] =&gt; 1725955200
            [hits] =&gt; 0
            [embedded] =&gt; 1
            [key] =&gt; baz
        )

)</pre>
</div>
   </div>
   <div class="example-contents"><p>
    Las entradas se listan en el orden de las ranuras, no en el orden en que
    fueron almacenadas. Las entradas empotradas (escalares cortos conservados
    dentro de la propia ranura) tienen <code class="literal">crc</code> y
    <code class="literal">size</code> a cero; las entradas almacenadas en un bloque de
    valor separado llevan su suma de comprobación y el tamaño del bloque, y las
    entradas comprimidas llevan además <code class="literal">c_len</code>.
   </p></div>
  </div>
  <div class="example" id="example-2">
   <p><strong>Ejemplo #2 Recorrido por páginas de una caché grande</strong></p>
   <div class="example-contents"><p>
    <code class="parameter">limit</code> limita cuántas entradas devuelve una sola
    llamada, y <code class="parameter">offset</code> omite esa cantidad de entradas
    antes de empezar a recopilar, de modo que ambos pueden combinarse para
    recorrer por páginas una caché que contiene más entradas de las que una sola
    llamada puede devolver.
   </p></div>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$yac </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yac</span><span style="color: #007700">();

</span><span style="color: #FF8000">// llena la caché con 250 entradas
</span><span style="color: #007700">for (</span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$i </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">250</span><span style="color: #007700">; </span><span style="color: #0000BB">$i</span><span style="color: #007700">++) {
    </span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"key</span><span style="color: #0000BB">$i</span><span style="color: #DD0000">"</span><span style="color: #007700">, </span><span style="color: #0000BB">$i</span><span style="color: #007700">);
}

</span><span style="color: #0000BB">$page_size </span><span style="color: #007700">= </span><span style="color: #0000BB">100</span><span style="color: #007700">;
</span><span style="color: #0000BB">$page_num  </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;

</span><span style="color: #FF8000">// omite las 100 primeras entradas y devuelve las 100 siguientes (página 2)
</span><span style="color: #0000BB">$page </span><span style="color: #007700">= </span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$page_size</span><span style="color: #007700">, </span><span style="color: #0000BB">$page_size </span><span style="color: #007700">* (</span><span style="color: #0000BB">$page_num </span><span style="color: #007700">- </span><span style="color: #0000BB">1</span><span style="color: #007700">));

</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$page</span><span style="color: #007700">));
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>Resultado del ejemplo anterior
es similar a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">int(100)</pre>
</div>
   </div>
   <div class="example-contents"><p>
    Se devuelven menos entradas de las solicitadas cuando la caché contiene
    menos entradas de las que abarca la página pedida, y se devuelve un array
    vacío en cuanto el desplazamiento apunta más allá de la última ranura
    ocupada.
   </p></div>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-yac.dump-seealso">
  <h3 class="title">Véase también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="yac.info.php" class="methodname" rel="rdfs-seeAlso">Yac::info()</a> - Estado del cach&eacute;</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>