Bonjour,
Entre tous les trucs qu'il faut mettre en premier dans un code, on se demande parfois quoi choisir ?
Je mets direct un exemple :
On tient pour acquis que je n'utilise JAMAIS de variables de sessions dans mes classes directement, mais que je les passe le cas échéant en paramètres "neutralisés"...
Quelle est la meilleure pratique ?
Méthode 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start(); 
spl_autoload_register(function ($class) {
    include '../classes/' . $class . '.class.php';
});
if(empty($_SESSION['is_connected'])){
   header('location:../login.php');
   exit;
}
else{
   //traitement
}
?>
Méthode 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
spl_autoload_register(function ($class) {
    include '../classes/' . $class . '.class.php';
});
session_start();
if(empty($_SESSION['is_connected'])){
   header('location:../login.php');
   exit;
}
else{
   //traitement
}
?>
Question connexe 1 :
Ajouter à cela que j'ajoute toujours dans mes applis un fichier config.php qui comporte des constantes essentielles à l'application courante.
exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
//en dev
//define('APPLI_URL','http://dev_mon_appli'.'.com');
//define('APPLI_PATH','/www/dev/mon_appli');
//en prod
define('APPLI_URL','http://mon_appli'.'.com');
define('APPLI_PATH','/www/mon_appli');
Donc vous vous doutez que ça m'arrange ensuite de mettre des liens absolus via ces constantes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
include('../config.php');
spl_autoload_register(function ($class) {
    include APPLI_PATH.'/classes/' . $class . '.class.php';
});
if(empty($_SESSION['is_connected'])){
   header('location:'.APPLI_PATH.'/login.php');
   exit;
}
Et du coup, le fichier config doit aussi "venir en premier"... mouarf... Ca fait encore un sacré jeu de combinaisons de premier parmi les premiers...
Mais on verra ça quand vous aurez répondu à combinaison numéro 1 lol...


Question connexe 2 :

include ou require ?
Ceci a-t-il grande importance ?