Skip to content

Commit c917e62

Browse files
add translate new page apcu (#181)
* add translate new page apcu * review * fix review --------- Co-authored-by: Marcos Porto Mariño <[email protected]>
1 parent abe066a commit c917e62

9 files changed

+1513
-0
lines changed

reference/apcu/functions/apcu-add.xml

+157
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: e9366ee458b2900c53a503b1ad97664e1d9a8859 Maintainer: PhilDaiguille Status: ready -->
3+
<!-- Reviewed: no Maintainer: Marqitos-->
4+
<refentry xml:id="function.apcu-add" xmlns="http://docbook.org/ns/docbook">
5+
<refnamediv>
6+
<refname>apcu_add</refname>
7+
<refpurpose>
8+
Almacena en caché una nueva variable en el almacén de datos
9+
</refpurpose>
10+
</refnamediv>
11+
<refsect1 role="description">
12+
&reftitle.description;
13+
<methodsynopsis>
14+
<type>bool</type><methodname>apcu_add</methodname>
15+
<methodparam><type>string</type><parameter>key</parameter></methodparam>
16+
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
17+
<methodparam choice="opt"><type>int</type><parameter>ttl</parameter><initializer>0</initializer></methodparam>
18+
</methodsynopsis>
19+
<methodsynopsis>
20+
<type>array</type><methodname>apcu_add</methodname>
21+
<methodparam><type>array</type><parameter>values</parameter></methodparam>
22+
<methodparam choice="opt"><type>mixed</type><parameter>unused</parameter><initializer>NULL</initializer></methodparam>
23+
<methodparam choice="opt"><type>int</type><parameter>ttl</parameter><initializer>0</initializer></methodparam>
24+
</methodsynopsis>
25+
<para>
26+
Almacena en caché una variable en el almacén de datos, solo si no ha sido ya almacenada.
27+
</para>
28+
<note>
29+
<simpara>
30+
A diferencia de muchos otros mecanismos en PHP, las variables almacenadas
31+
utilizando <function>apcu_add</function> persistirán entre las peticiones (hasta que
32+
sus valores sean retirados del caché).
33+
</simpara>
34+
</note>
35+
</refsect1>
36+
<refsect1 role="parameters">
37+
&reftitle.parameters;
38+
<para>
39+
<variablelist>
40+
<varlistentry>
41+
<term><parameter>key</parameter></term>
42+
<listitem>
43+
<para>
44+
Almacena la variable utilizando este nombre de clave. Cada clave es única en el caché,
45+
intentar utilizar <function>apcu_add</function> para almacenar un dato con una
46+
clave <parameter>key</parameter> ya existente no sobrescribirá el dato sino que devolverá
47+
el valor &false;. (Esta es la única diferencia entre
48+
las funciones <function>apcu_add</function> y <function>apcu_store</function>.)
49+
</para>
50+
</listitem>
51+
</varlistentry>
52+
<varlistentry>
53+
<term><parameter>var</parameter></term>
54+
<listitem>
55+
<para>
56+
La variable a almacenar.
57+
</para>
58+
</listitem>
59+
</varlistentry>
60+
<varlistentry>
61+
<term><parameter>ttl</parameter></term>
62+
<listitem>
63+
<para>
64+
Duración de vida; almacena la variable <parameter>var</parameter> en el caché durante
65+
<parameter>ttl</parameter> segundos. Después de la expiración de
66+
<parameter>ttl</parameter>, la variable almacenada será retirada del caché (en la
67+
próxima petición). Si no se pasa ningún valor a
68+
<parameter>ttl</parameter> (o si el valor de <parameter>ttl</parameter> es
69+
<literal>0</literal>), la variable persistirá hasta que sea retirada
70+
manualmente del caché, o, de lo contrario, fallará al salir del caché (durante un
71+
borrado, reinicio, etc.).
72+
</para>
73+
</listitem>
74+
</varlistentry>
75+
<varlistentry>
76+
<term><parameter>values</parameter></term>
77+
<listitem>
78+
<para>
79+
Los nombres son proporcionados por las claves del array <parameter>values</parameter>,
80+
las variables por los valores.
81+
</para>
82+
</listitem>
83+
</varlistentry>
84+
</variablelist>
85+
</para>
86+
</refsect1>
87+
<refsect1 role="returnvalues">
88+
&reftitle.returnvalues;
89+
<para>
90+
Devuelve TRUE si una variable ha sido efectivamente añadida al caché, FALSE en caso contrario.
91+
La segunda sintaxis devuelve un array con las claves erróneas.
92+
</para>
93+
</refsect1>
94+
95+
<refsect1 role="examples">
96+
&reftitle.examples;
97+
<para>
98+
<example>
99+
<title>Un ejemplo con <function>apcu_add</function></title>
100+
<programlisting role="php">
101+
<![CDATA[
102+
<?php
103+
$bar = 'BAR';
104+
apcu_add('foo', $bar);
105+
var_dump(apcu_fetch('foo'));
106+
echo "\n";
107+
$bar = 'NEVER GETS SET';
108+
apcu_add('foo', $bar);
109+
var_dump(apcu_fetch('foo'));
110+
echo "\n";
111+
?>
112+
]]>
113+
</programlisting>
114+
&example.outputs;
115+
<screen>
116+
<![CDATA[
117+
string(3) "BAR"
118+
string(3) "BAR"
119+
]]>
120+
</screen>
121+
</example>
122+
</para>
123+
</refsect1>
124+
125+
<refsect1 role="seealso">
126+
&reftitle.seealso;
127+
<para>
128+
<simplelist>
129+
<member><function>apcu_store</function></member>
130+
<member><function>apcu_fetch</function></member>
131+
<member><function>apcu_delete</function></member>
132+
</simplelist>
133+
</para>
134+
</refsect1>
135+
136+
</refentry>
137+
138+
<!-- Keep this comment at the end of the file
139+
Local variables:
140+
mode: sgml
141+
sgml-omittag:t
142+
sgml-shorttag:t
143+
sgml-minimize-attributes:nil
144+
sgml-always-quote-attributes:t
145+
sgml-indent-step:1
146+
sgml-indent-data:t
147+
indent-tabs-mode:nil
148+
sgml-parent-document:nil
149+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
150+
sgml-exposed-tags:nil
151+
sgml-local-catalogs:nil
152+
sgml-local-ecat-files:nil
153+
End:
154+
vim600: syn=xml fen fdm=syntax fdl=2 si
155+
vim: et tw=78 syn=sgml
156+
vi: ts=1 sw=1
157+
-->
+179
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: e9366ee458b2900c53a503b1ad97664e1d9a8859 Maintainer: PhilDaiguille Status: ready -->
3+
<!-- Reviewed: no Maintainer: Marqitos-->
4+
<refentry xml:id="function.apcu-entry" xmlns="http://docbook.org/ns/docbook">
5+
<refnamediv>
6+
<refname>apcu_entry</refname>
7+
<refpurpose>
8+
Recupera de manera atómica o genera una entrada de caché
9+
</refpurpose>
10+
</refnamediv>
11+
<refsect1 role="description">
12+
&reftitle.description;
13+
<methodsynopsis>
14+
<type>mixed</type><methodname>apcu_entry</methodname>
15+
<methodparam><type>string</type><parameter>key</parameter></methodparam>
16+
<methodparam><type>callable</type><parameter>generator</parameter></methodparam>
17+
<methodparam choice="opt"><type>int</type><parameter>ttl</parameter><initializer>0</initializer></methodparam>
18+
</methodsynopsis>
19+
<para>
20+
Intenta recuperar de manera atómica el valor indexado por la clave <parameter>key</parameter>
21+
en la caché. Si no puede ser recuperado, la función pasada a
22+
<parameter>generator</parameter> es llamada, con el único argumento de la clave
23+
contenida en <parameter>key</parameter>. El valor de retorno de la llamada es
24+
luego almacenado en caché con el parámetro opcional <parameter>ttl</parameter>,
25+
y luego devuelve el control.
26+
</para>
27+
<note>
28+
<simpara>
29+
Cuando el control entra en <function>apcu_entry</function>, el bloqueo de la caché es
30+
adquirido de manera exclusiva. Es liberado cuando el control sale de
31+
<function>apcu_entry</function>: Más específicamente, el cuerpo de la función pasada a
32+
<parameter>generator</parameter> se convierte en una sección crítica, lo que impide que
33+
dos procesos ejecuten la misma parte del código de manera concurrente. Además, impide
34+
la ejecución concurrente de cualquier otra función APCu, ya que adquirirá el mismo bloqueo.
35+
</simpara>
36+
</note>
37+
<warning>
38+
<simpara>
39+
La única función que puede ser llamada de manera segura por <parameter>generator</parameter>
40+
es <function>apcu_entry</function>.
41+
</simpara>
42+
</warning>
43+
</refsect1>
44+
<refsect1 role="parameters">
45+
&reftitle.parameters;
46+
<para>
47+
<variablelist>
48+
<varlistentry>
49+
<term><parameter>key</parameter></term>
50+
<listitem>
51+
<para>
52+
Clave de una entrada de caché.
53+
</para>
54+
</listitem>
55+
</varlistentry>
56+
<varlistentry>
57+
<term><parameter>generator</parameter></term>
58+
<listitem>
59+
<para>
60+
Un parámetro de tipo callable que toma <parameter>key</parameter> como único argumento
61+
y devuelve el valor a almacenar en caché.
62+
</para>
63+
</listitem>
64+
</varlistentry>
65+
<varlistentry>
66+
<term><parameter>ttl</parameter></term>
67+
<listitem>
68+
<para>
69+
Duración de vida; almacena la variable <parameter>var</parameter> en la caché por
70+
una duración de <parameter>ttl</parameter> segundos. Después de la expiración de
71+
<parameter>ttl</parameter>, la variable almacenada será retirada de la caché (en la
72+
próxima solicitud). Si no se pasa ningún valor al parámetro
73+
<parameter>ttl</parameter> (o si el valor de <parameter>ttl</parameter> es
74+
<literal>0</literal>), la variable persistirá hasta que sea retirada
75+
manualmente de la caché, o, de lo contrario, fallará al salir de la caché (durante un
76+
borrado, reinicio, etc.).
77+
</para>
78+
</listitem>
79+
</varlistentry>
80+
</variablelist>
81+
</para>
82+
</refsect1>
83+
<refsect1 role="returnvalues">
84+
&reftitle.returnvalues;
85+
<para>
86+
Devuelve el valor almacenado en caché.
87+
</para>
88+
</refsect1>
89+
90+
<refsect1 role="examples">
91+
&reftitle.examples;
92+
<para>
93+
<example>
94+
<title>Un ejemplo con <function>apcu_entry</function></title>
95+
<programlisting role="php">
96+
<![CDATA[
97+
<?php
98+
$config = apcu_entry("config", function($key) {
99+
return [
100+
"fruit" => apcu_entry("config.fruit", function($key){
101+
return [
102+
"apples",
103+
"pears"
104+
];
105+
}),
106+
"people" => apcu_entry("config.people", function($key){
107+
return [
108+
"bob",
109+
"joe",
110+
"niki"
111+
];
112+
})
113+
];
114+
});
115+
116+
var_dump($config);
117+
?>
118+
]]>
119+
</programlisting>
120+
&example.outputs;
121+
<screen>
122+
<![CDATA[
123+
array(2) {
124+
["fruit"]=>
125+
array(2) {
126+
[0]=>
127+
string(6) "apples"
128+
[1]=>
129+
string(5) "pears"
130+
}
131+
["people"]=>
132+
array(3) {
133+
[0]=>
134+
string(3) "bob"
135+
[1]=>
136+
string(3) "joe"
137+
[2]=>
138+
string(4) "niki"
139+
}
140+
}
141+
]]>
142+
</screen>
143+
</example>
144+
</para>
145+
</refsect1>
146+
147+
<refsect1 role="seealso">
148+
&reftitle.seealso;
149+
<para>
150+
<simplelist>
151+
<member><function>apcu_store</function></member>
152+
<member><function>apcu_fetch</function></member>
153+
<member><function>apcu_delete</function></member>
154+
</simplelist>
155+
</para>
156+
</refsect1>
157+
158+
</refentry>
159+
160+
<!-- Keep this comment at the end of the file
161+
Local variables:
162+
mode: sgml
163+
sgml-omittag:t
164+
sgml-shorttag:t
165+
sgml-minimize-attributes:nil
166+
sgml-always-quote-attributes:t
167+
sgml-indent-step:1
168+
sgml-indent-data:t
169+
indent-tabs-mode:nil
170+
sgml-parent-document:nil
171+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
172+
sgml-exposed-tags:nil
173+
sgml-local-catalogs:nil
174+
sgml-local-ecat-files:nil
175+
End:
176+
vim600: syn=xml fen fdm=syntax fdl=2 si
177+
vim: et tw=78 syn=sgml
178+
vi: ts=1 sw=1
179+
-->

0 commit comments

Comments
 (0)