Il faut fournir un tableau de configuration ou le chemin d'un fichier de configuration ini (voir Yaf_Config_Ini) à Yaf_Application::__construct().
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é.
Exemple #1 Un exemple de tableau PHP
<?php
$configs = array(
"application" => array(
"directory" => dirname(__FILE__),
"dispatcher" => array(
"catchException" => 0,
),
"view" => array(
"ext" => "phtml",
),
),
);
$app = new Yaf_Application($configs);
?>Exemple #2 Un exemple de fichier ini
[yaf] yaf.directory = APPLICATION_PATH "/application" yaf.dispatcher.catchException = 0 [product : yaf] ; la liste des configurations utilisateur ici
Lorsque la configuration devient volumineuse,
Yaf_Config_Ini, qui analyse le fichier ini à chaque
requête, représente un surcoût notable.
» Yaconf 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
yaconf.directory vers le dossier contenant la
configuration, et passer le tableau retourné à
Yaf_Application::__construct() :
<?php
// dans php.ini : yaconf.directory = /path/to/app/conf
$app = new Yaf_Application(Yaconf::get("application"));
?>
Un fichier contenant des en-têtes [section] est exposé
sous la forme d'une entrée par section (l'héritage, par exemple
[product : yaf], étant déjà résolu). Il est possible de
récupérer une seule section avec un point,
Yaconf::get("application.product"), et de passer ce
tableau à la place ; ses clés sont exactement les entrées fusionnées de
cette section.
| Nom | Défaut | Historique |
|---|---|---|
| application.directory | ||
| application.ext | "php" | |
| application.view.ext | "phtml" | |
| application.modules | "index" | |
| application.library | application.directory . "/library" | |
| application.library.directory | application.directory . "/library" | |
| application.library.namespace | "" | |
| application.bootstrap | application.directory . "/Bootstrap" . application.ext | |
| application.baseUri | "" | |
| application.dispatcher.defaultRoute | ||
| application.dispatcher.throwException | 1 | |
| application.dispatcher.catchException | 0 | |
| application.dispatcher.defaultModule | "index" | |
| application.dispatcher.defaultController | "index" | |
| application.dispatcher.defaultAction | "index" | |
| application.system |
Voici un éclaircissement sur l'utilisation des directives de configuration.
application.directory
string
Le répertoire de l'application, c'est-à-dire le dossier qui contient les dossiers "controllers", "views", "models" et "plugins".
Note:
Cette entrée de configuration est la seule qui n'a pas de valeur par défaut. Il faut toujours la définir manuellement.
application.ext
string
L'extension de fichier des scripts PHP, utilisée lors du chargement automatique des classes (Yaf_Loader).
application.view.ext
string
L'extension de fichier des scripts de gabarit de vue.
application.modules
string
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,
Yaf a besoin d'un moyen de déterminer si le premier segment est un nom de module ou non.
application.library
string
Le répertoire de la bibliothèque locale, voir Yaf_Loader et yaf.library.
Note:
À 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 application.library.directory
application.library.directory
string
Alias de application.library. Introduit en Yaf 2.1.6
application.library.namespace
string
Un préfixe, séparé par des virgules, du namespace de la bibliothèque locale.
Introduit en Yaf 2.1.6
application.bootstrap
string
Un chemin absolu vers le script de la classe Bootstrap.
application.baseUri
string
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.
En général, il n'est pas nécessaire de définir cette valeur.
application.dispatcher.throwException
bool
Si elle est définie à On, Yaf lancera une exception lorsqu'une erreur se produit. Voir aussi Yaf_Dispatcher::throwException().
application.dispatcher.catchException
bool
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 Yaf_Dispatcher::catchException().
application.dispatcher.defaultRoute
string
La route par défaut ; si elle n'est pas spécifiée, la route Static sera utilisée par défaut. Voir : Yaf_Router::addRoute().
application.dispatcher.defaultModule
string
Le nom du module par défaut, voir aussi Yaf_Dispatcher::setDefaultModule().
application.dispatcher.defaultController
string
Le nom du contrôleur par défaut, voir aussi Yaf_Dispatcher::setDefaultController().
application.dispatcher.defaultAction
string
Le nom de l'action par défaut, voir aussi Yaf_Dispatcher::setDefaultAction().
application.system
string
Définit la configuration d'exécution de Yaf dans application.ini, comme : application.system.lowcase_path
Note:
seules les configurations
INI_ALLpeuvent être définies de cette manière