configuration.inc ou configuration.php ?

Il est intéressant de regrouper dans un même fichier toutes les instructions qui doivent être effectuées au début du programme, avant-même que la balise <!DOCTYPE> soit envoyée au navigateur. Ceci nous permettra, notamment, d'effectuer une redirection après avoir effectué un traitement donné. Si des données avaient été envoyées au navigateur, la redirection n'aurait pas été permise.

▼Publicité

Le fichier portera le nom configuration.inc. Notez que certains développeurs aiment l'appeler session.inc.

Voici un exemple de ce que ce fichier peut contenir :

Fichier configuration.inc

<?php

    @session_start();

 

    // variables globales

    $debug = true;

    $url_racine = "http://mondomaine.com";

    $serveur_bd='localhost';

    $usager_bd = 'root';

    $mot_de_passe_bd = '';

    $nom_bd = 'mabd';

    $fuseau_horaire = 'America/Montreal';

 

    // gestion des erreurs

    if ($debug) {

        // gère et affiche tous les niveaux d'erreurs en mode débogage

        error_reporting(E_ALL);

        ini_set('display_errors', '1');

    }

    else {

        // en mode production, ne gère pas certains niveaux pour des raisons de performance

        // même pour les niveaux gérés, aucun message ne sera affiché pour des raisons de sécurité

        error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);

        ini_set('display_errors', '0');

    }

 

    // branchement à la BD

    @$mysqli = new mysqli($serveur_bd, $usager_bd, $mot_de_passe_bd, $nom_bd);

    if ($mysqli->connect_errno) {

        die('&Eacute;chec lors de la connexion &agrave; la base de donn&eacute;es.');

    }

?>

Ce fichier, qui sera placé dans le dossier include, ne devrait-il pas plutôt s'appeler configuration.php ?

Autrement dit, est-ce que ce fichier est considéré comme :

  • un fichier contenant des instructions ne devant pas être exécutées plus d'une fois, comme par exemple des définitions de fonctions (fichier .php) -> on utilisera alors require_once pour l'inclure.

    ou

  • un fichier ne contenant qu'un extrait de code, donc qui ne peut pas être autonome (fichier.inc) -> on utilisera alors require pour l'inclure.

Il est clair que ce fichier ne contient pas de définitions de fonctions. Ce devrait donc être un fichier .inc.

Cependant, il contient l'instruction session_start() qui doit être exécutée une seule fois dans une même page Web. En effet, selon la documentation de PHP : « A partir de PHP 4.3.3, appeler session_start() après qu'une session sois déjà démarrée émettra une erreur E_NOTICE. De plus la deuxième session démarrée sera tout simplement ignorée ».

Nous allons donc transgresser la règle générale des inclusions pour ce fichier : même s'il s'agit d'un fichier .inc, nous utiliserons require_once pour l'inclure.

Ex :

PHP

require_once '/include/configuration.inc';

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories