Formation PUB010 : PHP, 2025 Réutiliser des parties de code

19.4 Fichier configuration.inc


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. Si des balises HTML avaient été envoyées au navigateur, la redirection n'aurait pas été permise.

configuration.inc

Le fichier qui regroupe les instruction qui doivent être effectuées au début du programme portera le nom configuration.inc.

Très important : dans ce fichier, il ne doit y avoir aucun echo ni rien en dehors de <?php et ?>, même pas un saut de ligne.

Voici un exemple de ce que ce fichier peut contenir :

Fichier configuration.inc

<?php
    @session_start();

    /**
     * Configurations - ne doit rien envoyer au navigateur.
     * @author Christiane Lagacé <christiane.lagace@hotmail.com>
     */

    require_once 'include/ma-bibliotheque.php';
 
    // mode développement ou production
    define('DEVEL', true);
 
    // site local ou en ligne
    define('HEBERGEMENT_LOCAL', true);

    // version PHP (inspiré de https://www.php.net/manual/fr/function.phpversion.php)
    $versionMajeurePHP = intval(explode('.',PHP_VERSION)[0]);

    // variables codées en dur
    if (HEBERGEMENT_LOCAL) {
        $serveurBD='127.0.0.1';
        $usagerBD = 'root';
        $motDePasseBD = 'mysql';
        $nomBD = 'mabd';
    }
    else {
        $serveurBD='127.0.0.1';
        $usagerBD = '...';
        $motDePasseBD = '...';
        $nomBD = '...';
    }

    $fuseauHoraire = 'America/Montreal';
    $urlRacineSite = "https://mondomaine.com";
    $slugSite = "monsite";
 
    // variables initialisées par programmation
    $dossierRacineServeur = dirname(__FILE__, 3);
    $dossierRacineSite = dirname(__FILE__, 2);

    if (isset($_SESSION['page_actuelle'])) {
        $_SESSION['page_avant'] = $_SESSION['page_actuelle'];
    } else {
        $_SESSION['page-avant'] = 'index.php';
    }

    $_SESSION['page_actuelle'] = basename($_SERVER['SCRIPT_NAME']);
 
    // fichier journal pour débogage
    define('DEBUG_LOG_FILE', $dossierRacineServeur . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . "$slugSite.log");
 
    // fuseau horaire
    date_default_timezone_set($fuseauHoraire);
 
    // gestion des erreurs
    if (DEVEL === true) {
        // journalise et affiche tous les niveaux d'erreurs en mode développement
        error_reporting(E_ALL);
        ini_set('display_errors', '1');   // mettre à 0 si on ne veut pas voir les message à l'écran
    }
    else {
        // en mode production, ne journalise pas certains niveaux pour des raisons de performance
        error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);

        // aucun message ne sera affiché pour des raisons de sécurité
        ini_set('display_errors', '0');
    }
 
    // branchement à la BD
    if ($versionMajeurePHP < 8) {
        // branchement à la BD (PHP 7.x)
        @$mysqli = new mysqli($serveurBD, $usagerBD, $motDePasseBD, $nomBD);
        if ($mysqli->connect_errno) {
            die('&Eacute;chec lors de la connexion &agrave; la base de donn&eacute;es.');
        }
    }
    else {
        // branchement à la BD (PHP 8.x)
        try {
            $mysqli = new mysqli($serveurBD, $usagerBD, $motDePasseBD, $nomBD);
        } catch (Exception $e) {
            die('&Eacute;chec lors de la connexion &agrave; la base de donn&eacute;es.');
        }
    }

    $mysqli->set_charset("utf8");  

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre