Files
doc-fr/reference/phar/Phar/stopBuffering.xml
2021-06-12 07:27:28 +01:00

140 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f5a5f5ae75cf140bd3dd65da52b70f6236b0e131 Maintainer: gui Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.stopbuffering">
<refnamediv>
<refname>Phar::stopBuffering</refname>
<refpurpose>Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>void</type><methodname>Phar::stopBuffering</methodname>
<void/>
</methodsynopsis>
<para>
<function>Phar::stopBuffering</function> est utilisée en conjonction avec la méthode
<function>Phar::startBuffering</function>. <function>Phar::startBuffering</function>
peut fournir un gain de performance lors de la création ou la modification d'une archive
Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de
l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les
changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui
y sont appliquées.
</para>
<para>
Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple,
ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière.
De même, il est souvent nécessaire de faire une série de changements et de s'assurer
qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions
des base de données relationnelles. Les fonctions
<function>Phar::startBuffering</function>/<function>Phar::stopBuffering</function> sont disponibles
dans ce but.
</para>
<para>
La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar
<literal>foo.phar</literal> n'affecte pas les changements faits à l'archive Phar
<literal>bar.phar</literal>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Une exception <classname>PharException</classname> est levée si des problèmes sont rencontrés lors
de l'écriture des changements sur le disque.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Un exemple <function>Phar::stopBuffering</function></title>
<para>
</para>
<programlisting role="php">
<![CDATA[
<?php
$p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
$p['fichier1.txt'] = 'salut';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
include 'phar://nouveau.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>Phar::startBuffering</function></member>
<member><function>Phar::isBuffering</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->