Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
153 changes: 92 additions & 61 deletions reference/yaf/appconfig.xml
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f4ff30a7a6a555fc825577d2cb877e3a07094d6b Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ddcf673c59d1708557680946fbffeee361d7fca6 Maintainer: yannick Status: ready -->

<chapter xml:id="yaf.appconfig" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title xmlns="http://docbook.org/ns/docbook">Application Configuration</title>
<title xmlns="http://docbook.org/ns/docbook">Configuration de l'application</title>
<para>
Il faut fournir un tableau de configuration, ou un fichier
au format ini de configuration (voir le chemin
<classname>Yaf_Config_Ini</classname>) de la méthode
<methodname>Yaf_Application::__construct</methodname>.
Il faut fournir un tableau de configuration ou le chemin d'un fichier de
configuration ini (voir <classname>Yaf_Config_Ini</classname>) à
<methodname>Yaf_Application::__construct</methodname>.
</para>
<para>
Yaf va fusionner automatiquement les configurations de l'application et
celles de l'utilisateur. Les configurations d'application sont préfixées
par "yaf." ou par "application.". Si à la fois "yaf." et "application." existent,
"application." prendra l'avantage.
Yaf fusionne automatiquement les configurations de l'application et celles
de l'utilisateur. Les configurations de l'application ont le préfixe "yaf."
ou "application.". Si "yaf." et "application." existent tous les deux,
"application." est retenu en priorité.
<example>
<title>Exemple avec un tableau PHP</title>
<title>Un exemple de tableau PHP</title>
<programlisting role="php">
<![CDATA[
<?php
Expand All @@ -40,22 +38,52 @@ $app = new Yaf_Application($configs);
</programlisting>
</example>
<example>
<title>Exemple avec un fichier ini</title>
<title>Un exemple de fichier ini</title>
<programlisting role="ini">
<![CDATA[
[yaf]
yaf.directory = APPLICATION_PATH "/application"
yaf.dispatcher.catchException = 0

[product : yaf]
; la configuration utilisateur va ici
; la liste des configurations utilisateur ici
]]>
</programlisting>
</example>
<tip>
<simpara>
Lorsque la configuration devient volumineuse,
<classname>Yaf_Config_Ini</classname>, qui analyse le fichier ini à chaque
requête, représente un surcoût notable.
<link xlink:href="&url.pecl.package;yaconf">Yaconf</link> analyse tous les
fichiers ini d'un répertoire une seule fois au démarrage de PHP et
conserve les valeurs analysées en mémoire partagée. Il faut définir
<literal>yaconf.directory</literal> vers le dossier contenant la
configuration, et passer le tableau retourné à
<methodname>Yaf_Application::__construct</methodname> :
</simpara>
<programlisting role="php">
<![CDATA[
<?php
// dans php.ini : yaconf.directory = /path/to/app/conf
$app = new Yaf_Application(Yaconf::get("application"));
?>
]]>
</programlisting>
<simpara>
Un fichier contenant des en-têtes <literal>[section]</literal> est exposé
sous la forme d'une entrée par section (l'héritage, par exemple
<literal>[product : yaf]</literal>, étant déjà résolu). Il est possible de
récupérer une seule section avec un point,
<literal>Yaconf::get("application.product")</literal>, et de passer ce
tableau à la place ; ses clés sont exactement les entrées fusionnées de
cette section.
</simpara>
</tip>
</para>
<para>
<table>
<title>Configuration d'application Yaf</title>
<title>Configuration de l'application Yaf</title>
<tgroup cols="3">
<thead>
<row>
Expand Down Expand Up @@ -161,15 +189,15 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Le dossier de l'application ; il contient les dossiers
"controllers", "views", "models" et "plugins".
Le répertoire de l'application, c'est-à-dire le dossier qui contient
les dossiers "controllers", "views", "models" et "plugins".
</para>
<para>
<note>
<para>
Cette entrée de configuration est la seule qui n'a pas de valeur
par défaut. Il faut toujours la définir manuellement.
</para>
<simpara>
Cette entrée de configuration est la seule qui n'a pas de valeur
par défaut. Il faut toujours la définir manuellement.
</simpara>
</note>
</para>
</listitem>
Expand All @@ -181,8 +209,8 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
L'extension de fichier du script PHP, utilisé dans la classe
autoloading(<classname>Yaf_Loader</classname>).
L'extension de fichier des scripts PHP, utilisée lors du chargement
automatique des classes (<classname>Yaf_Loader</classname>).
</para>
</listitem>
</varlistentry>
Expand All @@ -193,7 +221,7 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
L'extension du fichier de script du template de visualisation.
L'extension de fichier des scripts de gabarit de vue.
</para>
</listitem>
</varlistentry>
Expand All @@ -204,13 +232,13 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Une liste séparée par une virgule de modules enregistrés, utilisés
dans le processus de routage, et spécialement lorsqu'il y a plus de
trois segments dans le PATH_INFO
Une liste, séparée par des virgules, des modules enregistrés, utilisée
lors du processus de routage, en particulier lorsqu'il y a plus de
trois segments dans le PATH_INFO,
</para>
<para>
Yaf doit avoir un moyen de savoir si le premier segment est un
nom de module ou pas.
Yaf a besoin d'un moyen de déterminer si le premier segment est un nom
de module ou non.
</para>
</listitem>
</varlistentry>
Expand All @@ -221,16 +249,17 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Le dossier local de la bibliothèque, voir
Le répertoire de la bibliothèque locale, voir
<classname>Yaf_Loader</classname> et
<link linkend="ini.yaf.library">yaf.library</link>.
</para>
<note>
<para>
Depuis Yaf 2.1.6, cette entrée de configuration peut être un tableau.
Le chemin de la bibliothèque tente d'utiliser la valeur de <link
linkend="configuration.yaf.library.directory">application.library.directory</link>
</para>
<simpara>
À partir de Yaf 2.1.6, cette entrée de configuration peut être un
tableau. Le chemin de la bibliothèque essaiera d'utiliser les
éléments définis dans <link
linkend="configuration.yaf.library.directory">application.library.directory</link>
</simpara>
</note>
</listitem>
</varlistentry>
Expand All @@ -242,8 +271,8 @@ yaf.dispatcher.catchException = 0
<listitem>
<para>
Alias de <link
linkend="configuration.yaf.library">application.library</link>.
Introduit en Yaf 2.1.6.
linkend="configuration.yaf.library">application.library</link>.
Introduit en Yaf 2.1.6
</para>
</listitem>
</varlistentry>
Expand All @@ -254,8 +283,8 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Préfixes séparés par une virgule d'espace de noms locaux de
la bibliothèque.
Un préfixe, séparé par des virgules, du namespace de la bibliothèque
locale.
</para>
<para>
Introduit en Yaf 2.1.6
Expand All @@ -269,7 +298,7 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Un chemin absolu du script de la classe Bootstrap.
Un chemin absolu vers le script de la classe Bootstrap.
</para>
</listitem>
</varlistentry>
Expand All @@ -280,11 +309,11 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Utilisé pour supprimer un préfixe fixé d'une URI de requête
dans le processus de routage. Par exemple, une requête
dont l'URI est "/prefix/controller/action". Si on définit
application.baseUri à "/prefix", alors seul "/controller/action"
sera pris comme PATH_INFO dans le processus de routage.
Utilisé pour retirer un préfixe fixe de l'URI de requête lors du
processus de routage. Par exemple, si arrive une requête dont l'URI est
"/prefix/controller/action", et que application.baseUri est définie à
"/prefix", alors seul "/controller/action" sera pris comme PATH_INFO
lors du processus de routage.
</para>
<para>
En général, il n'est pas nécessaire de définir cette valeur.
Expand All @@ -298,8 +327,9 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Si vaut On, Yaf lance une exception lorsqu'une erreur surviendra.
Voir aussi la méthode <methodname>Yaf_Dispatcher::throwException</methodname>.
Si elle est définie à On, Yaf lancera une exception lorsqu'une erreur
se produit. Voir aussi
<methodname>Yaf_Dispatcher::throwException</methodname>.
</para>
</listitem>
</varlistentry>
Expand All @@ -310,9 +340,9 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Si vaut On, Yaf transmettra les erreurs aux contrôleurs/actions,
lorsqu'il rencontrera une exception non attrapable.
Voir aussi la méthode <methodname>Yaf_Dispatcher::catchException</methodname>.
Si elle est définie à On, Yaf redirigera vers le contrôleur/l'action
Error lorsqu'il y a une exception non gérée. Voir aussi
<methodname>Yaf_Dispatcher::catchException</methodname>.
</para>
</listitem>
</varlistentry>
Expand All @@ -323,8 +353,9 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
La route par défaut, si elle n'est pas spécifiée, la route statique
sera utilisée. Voir la méthode <methodname>Yaf_Router::addRoute</methodname>.
La route par défaut ; si elle n'est pas spécifiée, la route Static sera
utilisée par défaut. Voir :
<methodname>Yaf_Router::addRoute</methodname>.
</para>
</listitem>
</varlistentry>
Expand All @@ -335,7 +366,7 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Le nom de module par défaut. Voir aussi la méthode
Le nom du module par défaut, voir aussi
<methodname>Yaf_Dispatcher::setDefaultModule</methodname>.
</para>
</listitem>
Expand All @@ -347,7 +378,7 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Le nom par défaut du contrôleur. Voir aussi la méthode
Le nom du contrôleur par défaut, voir aussi
<methodname>Yaf_Dispatcher::setDefaultController</methodname>.
</para>
</listitem>
Expand All @@ -359,7 +390,7 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Le nom par défaut de l'action. Voir aussi la méthode
Le nom de l'action par défaut, voir aussi
<methodname>Yaf_Dispatcher::setDefaultAction</methodname>.
</para>
</listitem>
Expand All @@ -372,14 +403,14 @@ yaf.dispatcher.catchException = 0
</term>
<listitem>
<para>
Définit une configuration Yaf au moment de l'exécution dans
application.ini, comme ceci :
Définit la configuration d'exécution de Yaf dans application.ini,
comme :
<link linkend="ini.yaf.lowcase-path">application.system.lowcase_path</link>
<note>
<para>
seules les options de configuration <constant>INI_ALL</constant> peuvent
être définies de cette façon.
</para>
<simpara>
seules les configurations <constant>INI_ALL</constant> peuvent être
définies de cette manière
</simpara>
</note>
</para>
</listitem>
Expand Down
63 changes: 44 additions & 19 deletions reference/yaf/book.xml
Original file line number Diff line number Diff line change
@@ -1,25 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: bd23019549a09eb15f5c772987c76781ab5f5f09 Maintainer: yannick Status: ready -->
<!-- EN-Revision: ddcf673c59d1708557680946fbffeee361d7fca6 Maintainer: yannick Status: ready -->

<book xml:id="book.yaf" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="pecl" ?>
<title>Yaf (i.e. Yet Another Framework)</title>
<title>Yet Another Framework</title>
<titleabbrev>Yaf</titleabbrev>

<preface xml:id="intro.yaf">
&reftitle.intro;
<para>
L'extension <literal>Yet Another Framework</literal>(<acronym>Yaf</acronym>)
est un framework PHP, utilisé pour le développement d'application web.
</para>
<para>
Un benchmark de Yaf peut être vu sur la page des <link
xlink:href="&url.yaf.benchmarks;">performances Yaf</link>.
</para>
<para>
Pour un démarrage rapide, se référer à ces <link
linkend="yaf.tutorials">tutoriaux</link>.
</para>
<simpara>
L'extension <literal>Yet Another Framework</literal>
(<acronym>Yaf</acronym>) est un framework PHP utilisé pour développer
des applications web.
</simpara>
<simpara>
Contrairement aux frameworks PHP habituels, Yaf est écrit en C et compilé
sous forme d'extension : les classes du framework, le chargeur automatique,
le routeur et la boucle de distribution s'exécutent tous en code compilé,
si bien que le coût du framework par requête se mesure en microsecondes
plutôt qu'en millisecondes, et qu'aucun fichier PHP du framework n'est à
charger. Il est conçu pour les applications à fort trafic où le coût
d'amorçage compte, ainsi que pour les environnements d'exécution de
services à longue durée de vie (tels que Swoole) où chaque requête
nécessite un cycle de distribution vierge.
</simpara>
<simpara>
Yaf implémente l'architecture <acronym>MVC</acronym> classique avec un
script d'entrée unique, un fichier de configuration comportant des
sections d'environnement, des points d'ancrage d'amorçage, un système de
plugins doté de sept points d'ancrage de distribution, six types de routes
intégrés, un chargeur automatique de style PSR-0
(<classname>Yaf_Loader</classname>) et une vue légère à base de gabarits
PHP (<classname>Yaf_View_Simple</classname>).
</simpara>
<simpara>
Un benchmark simple de Yaf est disponible sur la page
<link xlink:href="&url.yaf.benchmarks;">Performances de Yaf</link>. Pour un
guide de démarrage rapide, se reporter à la section
<link linkend="yaf.tutorials">Tutoriels</link>.
</simpara>
<note>
<simpara>
Yaf nécessite PHP 7.0 ou plus récent (la branche master de son dépôt de
sources) ; une branche php5 prend en charge PHP 5.2 et plus récent.
</simpara>
</note>
</preface>

&reference.yaf.setup;
Expand Down Expand Up @@ -57,14 +82,14 @@
&reference.yaf.yaf-exception;
&reference.yaf.yaf-exception-typeerror;
&reference.yaf.yaf-exception-startuperror;
&reference.yaf.yaf-exception-dispatchfailed;
&reference.yaf.yaf-exception-dispatchfailed;
&reference.yaf.yaf-exception-routerfailed;
&reference.yaf.yaf-exception-loadfailed;
&reference.yaf.yaf-exception-loadfailed;
&reference.yaf.yaf-exception-loadfailed-module;
&reference.yaf.yaf-exception-loadfailed-controller;
&reference.yaf.yaf-exception-loadfailed-action;
&reference.yaf.yaf-exception-loadfailed-action;
&reference.yaf.yaf-exception-loadfailed-view;

</book>

<!-- Keep this comment at the end of the file
Expand Down
Loading
Loading