Après avoir terminé la première partie de la formation (code source complet disponible ICI). Cette seconde partie sera dédiée à l’ergonomie du code et l’optimisation sans trop modifier de code ainsi que sur la partie déploiement du projet.

Dans un premier temps, nous allons voir quels variables peuvent être intéressantes à garder dans un fichier externe: le fichier config.php. Il ne sera pour l’instant pas très rempli mais lorsque nous avancerons dans cette formation, il deviendra important. Aussi, ce chapitre est spécifique à chacun. Cela peut-être un réel avantage d’avoir un fichier config.php dans un projet et ici je vais surtout vous montrer ce que vous pouvez mettre dedans ainsi que comment organiser les variables.

Premièrement, il est important de séparer les différentes parties du fichier config.php car il est un concentré d’informations.

Pour cela vous pouvez adopter un schéma comme celui-ci:

<?php
/* * * * * * * * * * * * * * * * * * */

/*     Partie 1         */

/* * * * * * * * * * * * * * * * * * */

variable 1;

var 2;

var 3;

var 4;

/* * * * * * * * * * * * * * * * * * */

/*     Partie 2         */

/* * * * * * * * * * * * * * * * * * */

variable 5;

var 6;

var 7;

var 8;

/* * * * * * * * * * * * * * * * * * */

/*     Partie 3         */

/* * * * * * * * * * * * * * * * * * */

variable 9;

var 10;

var 11;

var 12;
?>

Pour définir une constante, en PHP, il faut utiliser la fonction define ()

Cette fonction s’utilise de la façon suivante:

define (‘nom de la constante’, ‘valeur de la constante’);

Il est aussi possible d’utiliser define() pour des tableaux de valeurs:

define (‘nom du tableau’, array ( ‘valeur 1’, ‘valeur 2’, ‘valeur 3’, …) );

note: N’oubliez pas que l’indexation d’un tableau commence à 0. Donc pour récupérer ‘valeur 1’ dans l’exemple précédent, il ne faut pas écrire ‘nom du tableau[1]’ mais ‘nom du tableau[0]. Si l’on s’arrête à ‘valeur 3’ notre tableau aura une taille (longueur) de 3 mais une indexation terminale de 2.

Aujourd’hui nous allons uniquement définir des chaînes de caractères (String) avec la fonction define() mais vous pouvez aussi définir des valeurs numériques, booléens (true / false), …

Pour le début de notre fichier config.php nous allons définir les variables de connexion à notre base de donnée.

Il faut donc définir les valeurs suivantes:

  • host
  • utilisateur
  • mot de passe
  • nom de la base de données

Notre fichier pourrait commencer comme ceci:

<?php

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#                                                                         -

#  Ce fichier n'exécute rien, il sert uniquement à stocker des variables  -

#                                                                         -

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#                          Base de données                    -

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

define ('host','localhost');

define ('user','root');

define ('pass', '');

define ('db', 'cms');

?>

Ensuite, nous pouvons remplacer chaque endroit où ces valeurs étaient utilisées (actuellement, tous les fichiers).

Information importante: si vous mettez ‘echo(user)’ dans le fichier index.php cela ne fonctionnera pas immédiatement. Il faut d’abord inclure le fichier config.php pour inclure les constantes qu’il contient. Pour cela, on utilise la fonction require_once(fichier à inclure);

donc dans index.php et article.php il faudra ajouter au début de la page

require_once('config.php');

Il y a une petite différence pour add.php et edit.php car ils ne se trouvent pas dans le même fichier que config.php. Pour résoudre cela, pas la peine de copier le fichier, il suffit d’ajouter ‘../’ au début du lien. Le double point en langage Unix permet de revenir dans le dossier précédent (si vous n’êtes pas déjà à la racine du serveur, évidemment).

(Vous avez peut être déjà vu dans le code de ces fichiers, ou dans le code d’autres projets que parfois je met ‘./’ dans les liens. Le point-slash ./ en Unix signifie le dossier actuel. Il n’est pas nécessaire de la spécifier mais parfois je le fais par habitude.)

Pour tous les fichiers nous avons donc pour la ligne de connexion à la BDD:

$conn = mysqli_connect(host, user,pass, db);

C’est tout pour ce chapitre ci, vous avez donc appris à construire un fichier config.php. Vous êtes évidemment invités à modifier le fichier et y ajouter les variables importantes de votre projet. La semaine prochaine, nous verrons comment créer un fichier install.php. Ce fichier sera constitué de plusieurs formulaires qui permettront de remplir automatiquement le fichier config.php en spécifiant le nom des variables ainsi que de créer la base de données sans passer par PhpMyAdmin ni aucun autre utilitaire. Ce dernier, nous permettra de voir comment se passe l’écriture / lecture de fichier avec PHP.

Finalement, après ce dernier chapitre de la seconde partie, nous passerons à la troisième partie de la formation, qui sera dédiée au système BackEnd avec la gestion d’utilisateurs et pleins d’autres notions qui j’en suis sur, vous intéresseront.

N’hésitez pas à partager si vous pensez que cela peut aussi permettre d’aider d’autres personnes.

Merci pour votre présence sur le blog, on avance ensemble !