## Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yaf
Nom | Défaut | Modifiable | Historique
--- | --- | --- | ---
yaf.library |  | `INI_ALL` |
yaf.action_prefer | 0 | `INI_ALL` |
yaf.lowcase_path | 0 | `INI_ALL` |
yaf.use_spl_autoload | 0 | `INI_ALL` |
yaf.forward_limit | 5 | `INI_ALL` |
yaf.name_suffix | 1 | `INI_ALL` |
yaf.name_separator |  | `INI_ALL` |
yaf.cache_config | 0 | `INI_SYSTEM` |
yaf.environ | product | `INI_SYSTEM` |
yaf.use_namespace | 0 | `INI_ALL` |

Voici un éclaircissement sur l'utilisation des directives de configuration.

`yaf.library` string

  Le chemin vers la bibliothèque globale ; Yaf_loader cherchera dans ce dossier la bibliothèque globale.

`yaf.action_prefer` int

  S'il n'y a qu'une seule partie dans PATH_INFO, doit être considéré comme un contrôleur ou une action.

  Si cette option est activée, elle sera considérée comme un nom d'action.

`yaf.lowcase_path` int

  Si l'on doit mettre en minuscule le chemin lors de l'autochargement de la classe.

`yaf.use_spl_autoload` int

  Lorsque cette valeur est active, si Yaf_Loader ne trouve pas une classe, il retournera `false`, et donnera ensuite la chance aux autres fonctions au chargement automatique d'être appelées.

  Lorsque cette valeur est désactivée, si Yaf_Loader ne peut pas trouver une classe, il retournera `true`, et fera échouer l'autochargement de la classe immédiatement.

  > Note:

  > Yaf enregistrera son chargeur lors de l'instanciation de Yaf_Application, aussi, tous les autres chargeurs automatiques qui sont enregistrés avant l'instanciation seront appelés avant Yaf_Loader::autoload().

  Lorsque cette valeur est désactivé (Off par défaut), la méthode Yaf_Loader::autoload() retournera toujours `true`.

`yaf.forward_limit` int

  Le nombre maximal de redirection ; par défaut, 5. Cela signifie que vous pouvez avoir un nombre maximal de 5 redirections dans la pile des redirections.

  Ceci est une protection contre les Yaf_Controller_Abstract::forward() récursifs.

`yaf.name_suffix` int

  Lorsqu'activé, Yaf_Loader identifiera une classe par son suffixe pour décider si c'est bien une classe MVC.

  Lorsque désactivé, Yaf_Loader regardera le préfixe du nom de la classe.

`yaf.name_separator` string

  Lorsque non vide, Yaf_Loader identifiera le suffixe de la classe à l'aide de ce séparateur.

  Par exemple, lorsque cette option contient la valeur "_", Yaf_Loader prendra Index_Controller comme une classe contrôleur, et IndexController comme une classe normale.

`yaf.cache_config` int

  Si activé, et dans le même temps, vous utilisez un fichier de configuration au format ini comme paramètre de la méthode Yaf_Application(), le résultat de la compilation du fichier de configuration au format ini sera mis en cache dans le processus PHP.

  > Note:

  > Yaf examine le flag mtime du fichier ini, et s'il a été modifié depuis la dernière compilation, Yaf le rechargera.

  Avertissement

  Yaf utilise le chemin vers le fichier ini comme clé de l'entrée du cache, aussi, n'utilisez pas un chemin absolu pour votre chemin vers le fichier ini, sinon, il se pourrait qu'il y ait des conflit si deux applications utilisent le même chemin relatif pour le chemin vers le fichier de configuration ini.

`yaf.environ` string

  La valeur est "product" par défaut ; utilisé par Yaf pour récupérer la section de configuration d'un fichier de configuration au format ini.

  Si la valeur est bien "product", Yaf utilisera la section nommée "product" dans le fichier de configuration au format ini (le premier paramètre de la classe Yaf_Application) comme configuration finale pour la classe Yaf_Application.

`yaf.use_namespace` int

  Si cette option est activée, toutes les classes de Yaf seront nommées via des espaces de noms.

  Par exemple :

      Yaf_Route_Rewrite => \Yaf\Route\Rewrite
      Yaf_Request_Http  => \Yaf\Request\Http

  Il y a une exception à ce principe, comme par exemple la classe Yaf_Controller_Abstract. Le dernier composant est un mot clé PHP, ne pouvant pas être utilisé comme nom de classe ; aussi, pour de tel cas :

      Yaf_Controller_Abstract => \Yaf\Controller_Abstract
      Yaf_Route_Static => \Yaf\Route_Static