Skip to content

Commit b665499

Browse files
author
lacatoire
committed
add translations on functional
1 parent f5efd5e commit b665499

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+953
-300
lines changed

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,6 @@ de PHP : http://doc.php.net/revcheck.php?p=filesummary&lang=fr
9494
Pour voir les fichiers qui doivent être mise à jour, allez sur le lien "Outdated Files" qui
9595
amène à : http://doc.php.net/revcheck.php?p=files&lang=fr
9696

97-
> Normalement le rev-check se trouve sur le site https://doc.php.net, mais à cause de la
98-
> migration récente de la documentation de SVN à git il se trouve là-bas actuellement.
99-
10097
## 4: Coding style
10198
### Fichier XML
10299

features/persistent-connections.xml

Lines changed: 152 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- $Revision$ -->
3-
<!-- EN-Revision: 0799f7789c50a11b746ad713cc8787e4b04dd926 Maintainer: yannick Status: ready -->
2+
<!-- EN-Revision: e7e4ffe9a10a4dcd9903a7abf125a811d0eda023 Maintainer: yannick Status: ready -->
43
<!-- Reviewed: yes -->
54

65
<chapter xml:id="features.persistent-connections" xmlns="http://docbook.org/ns/docbook">
76
<title>Connexions persistantes aux bases de données</title>
7+
8+
<simplesect>
9+
<title>Qu'est-ce que les connexions persistantes ?</title>
810
<simpara>
911
Les connexions persistantes aux bases de données SQL sont
1012
des connexions qui ne se referment pas à la fin du script.
@@ -18,25 +20,30 @@
1820
sont nécessaires).
1921
</simpara>
2022
<simpara>
21-
Ceux qui ne sont pas rompus aux techniques des serveurs web et leur
22-
distribution de la charge de travail se font parfois une fausse
23-
idée de ces connexions persistantes. En particulier,
24-
les connexions persistantes <emphasis>ne permettent pas</emphasis>
25-
l'ouverture de plusieurs sessions avec le même lien ;
26-
elles <emphasis>ne permettent pas</emphasis> la réalisation
27-
de transactions efficaces et ne font pas le café. En fait,
28-
pour être extrêmement clair sur le sujet, les
29-
connexions persistantes <emphasis>ne vous donnent</emphasis>
30-
aucune fonctionnalité
31-
de plus que les connexions non persistantes.
23+
Il n'y a pas de méthode pour demander une connexion spécifique, ou garantir
24+
que vous obtenez une connexion existante ou une toute nouvelle (si toutes les
25+
connexions sont utilisées, ou si la requête est servie par un autre processus,
26+
qui a un ensemble de connexions séparé).
3227
</simpara>
3328
<simpara>
34-
Alors pourquoi les connexions persistantes ?
29+
Cela signifie que vous ne pouvez pas utiliser les connexions persistantes PHP pour, par exemple :
3530
</simpara>
31+
<simplelist>
32+
<member>assigner une session de base de données spécifique à un utilisateur web spécifique</member>
33+
<member>créer une grande transaction à travers plusieurs requêtes</member>
34+
<member>initier une requête sur une demande et collecter les résultats sur une autre</member>
35+
</simplelist>
3636
<simpara>
37-
Cela s'explique par la manière avec laquelle les serveurs web
38-
fonctionnent. Il y a trois manières d'utiliser PHP pour
39-
générer des pages.
37+
Les connexions persistantes ne vous donnent <emphasis>aucune</emphasis>
38+
fonctionnalité qui n'était pas possible avec des connexions non persistantes.
39+
</simpara>
40+
</simplesect>
41+
42+
<simplesect xml:id="persistent-connections.web">
43+
<title>Requêtes Web</title>
44+
<simpara>
45+
Il existe deux façons pour votre serveur web d'utiliser PHP pour générer
46+
des pages web :
4047
</simpara>
4148
<simpara>
4249
La première est d'utiliser PHP comme un CGI (Common Interface Gateway).
@@ -45,13 +52,14 @@
4552
pour chaque page demandée. Étant donné que cet interpréteur est
4653
détruit après chaque requête, toutes les
4754
ressources acquises (comme une connexion à une base SQL),
48-
sont purement et simplement détruites.
55+
sont purement et simplement détruites. Dans ce cas vous ne
56+
gagnez rien à utiliser des connexions persistantes - elles ne persistent tout simplement pas.
4957
</simpara>
5058
<simpara>
51-
La deuxième méthode, de loin la plus prisée,
52-
est d'exécuter PHP sous la forme d'un module sur un serveur
53-
multiprocessus, ce qui revient à dire : Apache. Un tel serveur
54-
a typiquement un processus parent qui coordonne un ensemble de processus fils,
59+
La deuxième méthode, de loin la plus prisée, est d'exécuter PHP-FPM, ou PHP sous la forme d'un
60+
module sur un serveur multiprocessus, ce qui revient à dire : Apache.
61+
Ces configurations ont généralement un processus (le parent) qui
62+
coordonne un ensemble de processus fils,
5563
qui servent les fichiers. Lorsque les requêtes parviennent depuis
5664
un client, elles sont transmises à un fils disponible. Cela signifie
5765
que si un client fait une deuxième requête, il peut
@@ -61,24 +69,38 @@
6169
ultérieures, les processus fils pourront réutiliser la
6270
connexion ouverte précédemment.
6371
</simpara>
72+
<note>
73+
<para>
74+
Vous pouvez vérifier quelle méthode vos requêtes web utilisent en vérifiant la valeur de
75+
"Server API" dans la sortie de <function>phpinfo</function> ou la valeur de
76+
<constant>PHP_SAPI</constant>, exécutée depuis une requête web.
77+
</para>
78+
<para>
79+
Si la valeur de Server API est "CGI" ou "CLI", alors les connexions
80+
persistantes ne seront pas utilisées entre les requêtes. Pour toute autre
81+
valeur, les connexions persistantes persisteront après chaque requête.
82+
</para>
83+
</note>
84+
</simplesect>
85+
86+
<simplesect xml:id="persistent-connections.cli">
87+
<title>Processus en ligne de commande</title>
6488
<simpara>
65-
La dernière méthode est d'utiliser PHP sous la forme d'un
66-
module de serveur multithread. Actuellement, PHP supporte
67-
WSAPI, et NSAPI (sous Windows), qui permettent tous d'utiliser
68-
PHP comme un module sur un serveur multithread tel que Netscape
69-
FastTrack (iPlanet), Microsoft Internet Information Server (IIS), et
70-
O'Reilly's WebSite Pro. Le comportement est essentiellement le même
71-
que pour les serveurs multiprocessus décrits précédemment.
72-
</simpara>
73-
<simpara>
74-
Si les connexions persistantes n'ont aucune fonctionnalité de plus,
75-
à quoi servent-elles ?
89+
Comme PHP en ligne de commande utilise un nouveau processus pour chaque script,
90+
les connexions persistantes ne sont pas partagées entre les scripts en ligne de commande, donc il n'y a aucun
91+
intérêt à les utiliser dans des scripts transitoires tels que les crons ou les commandes.
92+
Cependant, elles peuvent être utiles si, par exemple, vous écrivez un serveur d'applications
93+
de longue durée qui sert de nombreuses requêtes ou tâches et que chacune peut
94+
avoir besoin de sa propre connexion à la base de données.
7695
</simpara>
96+
</simplesect>
97+
98+
<simplesect xml:id="persistent-connections.why">
99+
<title>Pourquoi les utiliser ?</title>
77100
<simpara>
78-
La réponse est extrêmement simple : efficacité. Les
79-
connexions persistantes sont un bon moyen d'accélérer les
80-
accès à une base SQL si le traitement de connexion à
81-
la base est long. Ce temps dépend de nombreux facteurs : le type
101+
Les connexions persistantes sont utiles si le coût de création d'une liaison
102+
vers votre serveur SQL est élevé. Que ce coût soit réellement élevé ou pas ceci dépend
103+
de nombreux facteurs : le type
82104
de base de données, cette base est-elle sur le même serveur
83105
ou pas, quelle est la charge du serveur de base de données, etc.
84106
Si le temps de connexion est long, les connexions persistantes seront
@@ -87,53 +109,107 @@
87109
processus fils, il suffit d'avoir 20 connexions persistantes ouvertes,
88110
une par fils.
89111
</simpara>
112+
</simplesect>
113+
114+
<simplesect xml:id="persistent-connections.drawbacks.conn-limits">
115+
<title>Inconvénients potentiels : limites de connexion</title>
90116
<simpara>
91117
Notez que les connexions persistantes ont quelques inconvénients
92118
si vous hébergez une base de données dont le nombre maximal de
93119
connexion risque d'être atteint par les connexions persistantes.
94120
Si votre base de données accepte jusqu'à 16 connexions
95-
simultanées et que 17 processus essaient de se connecter,
96-
le dernier restera sur la touche. S'il y a des erreurs dans les scripts qui ne permettent
97-
pas de fermer la connexion (par exemple, une boucle infinie), votre
98-
serveur sera rapidement engorgé. Vérifiez la documentation de votre
99-
base de données pour savoir comment elle traite les connexions
100-
inactives ou abandonnées.
121+
peut être rapidement submergée.
122+
</simpara>
123+
<simpara>
124+
Les connexions persistantes augmenteront généralement le nombre de connexions ouvertes
125+
à un moment donné parce que les travailleurs inactifs conserveront les connexions pour
126+
les requêtes précédentes qu'ils ont servies. Si un grand nombre de travailleurs est lancé pour
127+
gérer un afflux de requêtes, les connexions qu'ils ont ouvertes resteront jusqu'à
128+
ce que le travailleur soit tué ou que le serveur de base de données ferme la connexion.
101129
</simpara>
102-
<warning>
103-
<simpara>
104-
Il y a quelques autres limitations à bien garder en tête lorsque
105-
vous utilisez les connexions persistantes. L'une est que lorsque
106-
vous posez un verrou avec une connexion persistante, si le script ne
107-
peut libérer le verrou pour une raison quelconque, alors les autres
108-
scripts qui réutiliseront la connexion seront bloqués indéfiniment,
109-
et vous imposeront le redémarrage du serveur ou de la base de données.
110-
Une autre limitation est, lors de l'utilisation des transactions, un
111-
bloc de transaction non fermé sera prolongé au script suivant, s'il
112-
n'est pas fermé par le script initiateur. Dans les deux cas,
113-
vous pouvez utiliser la fonction
114-
<function>register_shutdown_function</function> pour enregistrer une
115-
fonction simple de nettoyage, pour déverrouiller les tables,
116-
et annuler les transactions en cours. Mieux encore, évitez le problème
117-
entièrement en n'utilisant pas les connexions persistantes dans les
118-
scripts qui ont besoin de verrous ou de transactions. Vous pourrez
119-
toujours les utiliser ailleurs.
120-
</simpara>
121-
</warning>
122130
<simpara>
123-
Résumons-nous : les connexions persistantes ont été
124-
définies pour avoir les mêmes fonctionnalités que
125-
les connexions non persistantes. Les deux types de connexions
126-
sont <emphasis>parfaitement interchangeables</emphasis>,
127-
et <emphasis>n'affecteront pas</emphasis> le comportement de votre script
128-
: uniquement son efficacité.
131+
Assurez-vous que le nombre maximal de connexions autorisées par le serveur de base de données
132+
est supérieur au nombre maximal de travailleurs de requêtes web (plus toute autre
133+
utilisation telle que les crons ou les connexions administratives).
129134
</simpara>
130-
<para>
131-
Voir aussi
132-
<function>ibase_pconnect</function>,
133-
<function>ociplogon</function>,
134-
<function>pfsockopen</function>, et
135-
<function>pg_pconnect</function>.
136-
</para>
135+
<simpara>
136+
Vérifiez votre documentation de base de données pour des informations sur la gestion des connexions abandonnées ou
137+
inactives (timeouts). Des timeouts longs peuvent augmenter considérablement le
138+
nombre de connexions persistantes ouvertes à un moment donné.
139+
</simpara>
140+
</simplesect>
141+
142+
<simplesect xml:id="persistent-connections.drawbacks.state">
143+
<title>Inconvénients potentiels : Maintien de l'état de connexion</title>
144+
<simpara>
145+
Certaines extensions de base de données effectuent un nettoyage automatique lorsque la connexion est
146+
réutilisée ; d'autres laissent cette tâche à la discrétion du développeur d'application.
147+
En fonction de l'extension de base de données choisie et de la conception de l'application, un
148+
nettoyage manuel peut être nécessaire avant la fin du script. Les modifications qui peuvent laisser
149+
les connexions dans un état inattendu incluent :
150+
</simpara>
151+
<simplelist>
152+
<member>Base de données sélectionnée / par défaut</member>
153+
<member>Verrous de table</member>
154+
<member>Transactions non commises</member>
155+
<member>Tables temporaires</member>
156+
<member>Paramètres ou fonctionnalités spécifiques à la connexion telles que le profilage</member>
157+
</simplelist>
158+
<simpara>
159+
Les verrous de table et les transactions qui ne sont pas nettoyés ou fermés peuvent
160+
entraîner le blocage indéfini d'autres requêtes et/ou provoquer
161+
des modifications inattendues lors de la réutilisation ultérieure de la connexion.
162+
</simpara>
163+
<simpara>
164+
Avoir la mauvaise base de données sélectionnée entraînera la réutilisation de
165+
la connexion incapable d'exécuter les requêtes suivantes comme prévu (ou de les exécuter sur
166+
la mauvaise base de données si les schémas sont suffisamment similaires).
167+
</simpara>
168+
<simpara>
169+
Si les tables temporaires ne sont pas nettoyées, les requêtes suivantes ne pourront pas
170+
recréer la même table.
171+
</simpara>
172+
<simpara>
173+
Vous pouvez implémenter le nettoyage en utilisant des destructeurs de classe ou
174+
<function>register_shutdown_function</function>. Vous pouvez également envisager
175+
des proxies de mise en pool de connexions dédiés qui incluent cela dans
176+
leur fonctionnalité.
177+
</simpara>
178+
</simplesect>
179+
180+
<simplesect xml:id="persistent-connections.final-words">
181+
<title>Derniers mots</title>
182+
<simpara>
183+
Étant donné leur comportement et les inconvénients potentiels décrits ci-dessus, vous ne devez pas
184+
utiliser les connexions persistantes sans une réflexion approfondie. Elles ne doivent pas être
185+
utilisées sans mettre en œuvre des modifications supplémentaires dans votre application et une configuration
186+
soigneuse de votre serveur de base de données et de votre serveur web et/ou PHP-FPM.
187+
</simpara>
188+
<simpara>
189+
Considérez des solutions alternatives telles que l'investigation et la correction des causes des
190+
surcoûts de création de connexion (par exemple, la désactivation des recherches DNS inverses sur
191+
le serveur de base de données), ou des proxies de mise en pool de connexions dédiés.
192+
</simpara>
193+
<simpara>
194+
Pour les API web à fort volume, envisagez d'utiliser des runtimes alternatifs ou des serveurs
195+
d'applications de longue durée.
196+
</simpara>
197+
</simplesect>
198+
199+
<simplesect role="seealso" xml:id="persistent-connections.seealso">
200+
&reftitle.seealso;
201+
<para>
202+
<simplelist>
203+
<member><function>ibase_pconnect</function></member>
204+
<member><function>oci_pconnect</function></member>
205+
<member><function>odbc_pconnect</function></member>
206+
<member><function>pfsockopen</function></member>
207+
<member><function>pg_connect</function></member>
208+
<member><link linkend="mysqli.persistconns">MySQLi et les connexions persistantes</link></member>
209+
<member><link linkend="pdo.connections">Gestion de connexions PDO</link></member>
210+
</simplelist>
211+
</para>
212+
</simplesect>
137213
</chapter>
138214

139215
<!-- Keep this comment at the end of the file

install/pie.xml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 3bc709a20a52a12d7e0e4736a8f332517acb199c Maintainer: Fan2Shrek Status: ready -->
3+
<!-- Reviewed: yes -->
4+
5+
<chapter xml:id="install.pie" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="chunk:false">
6+
<title>Installation de PIE et des extensions tierces</title>
7+
8+
<sect1 xml:id="install.pie.intro">
9+
<title>Introduction à PIE</title>
10+
<simpara>
11+
&link.pie; est une application d'installation pour PHP, qui permet
12+
d'installer des extensions tierces pour PHP, qui peuvent ensuite être facilement installées et mises à jour.
13+
Elle exploite la partie du référentiel d'extensions PHP de
14+
<link xlink:href="&url.packagist;">Packagist</link> pour trouver le code source
15+
à compiler pour l'extension, ou un binaire Windows à télécharger, s'il existe. Si elle
16+
télécharge le code source, elle sait aussi comment le compiler et l'installer.
17+
</simpara>
18+
<simpara>
19+
Après <link xlink:href="&url.pie;?tab=readme-ov-file#what-do-i-need-to-get-started">l'installation
20+
des prérequis et de PIE lui-même</link>, vous pouvez ensuite installer
21+
l'<link linkend="mongodb.mongodb">extension MongoDB</link> en exécutant
22+
la commande suivante.
23+
</simpara>
24+
<example>
25+
<title>Installer l'extension MongoDB avec PIE</title>
26+
<programlisting role="shell">
27+
<![CDATA[
28+
pie install mongodb/mongodb-extension
29+
]]>
30+
</programlisting>
31+
</example>
32+
<simpara>
33+
La <link xlink:href="&url.pie;/blob/main/docs/installation.md">documentation
34+
"PIE Installation"</link> explique cela avec plus de détails.
35+
</simpara>
36+
37+
</sect1>
38+
</chapter>

0 commit comments

Comments
 (0)