Certes, l'installation est terminée, mais il reste encore certains points à définir.
Le fichier config.php
Ce fichier de configuration est le cœur de la configuration du framework. Il se trouve dans le dossier
./application/config/. Je ne vais pas décrire tous les points mais sachez que nous allons aborder les plus importants.
base_url
C'est l'URL que vous devez taper pour accéder au fichier
index.php. Dans mon cas, ce sera :
Code : PHP - ./application/config/config.php | <?php
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
*/
$config['base_url'] = "http://localhost/codeIgniter/";
|
index_page
Par défaut, la valeur est index.php. Nous allons voir que CodeIgniter génère par défaut des URL de cette forme-là :
http://localhost/codeIgniter/index.php/classe_controleur/methode_controleur/.
Problème, ce « index.php » n'est pas des plus jolis. Pour le masquer, il y a une solution : l'
URL rewriting. Si vous avez activé ce module, alors vous pouvez créer un fichier
.htaccess à côté du
index.php contenant ce code :
Code : Apache - ./.htaccess 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | # Empêche la visualisation de l'arborescence, n'a rien à voir avec le masquage du « index.php ».
Options -Indexes
# Active le module de réécriture d'URL.
RewriteEngine on
#
# Fixe les règles de réécriture d'URL. Ici, nous utilisons une liste blanche.
#
# Toutes les URL qui ne correspondent pas à ces masques sont réécrites.
RewriteCond $1 !^(index\.php|assets/|robots\.txt)
# Toutes les autres URL vont être redirigées vers le fichier index.php.
RewriteRule ^(.*)$ index.php/$1 [L]
|
Une fois cela fait, vous pouvez vider la variable
index_page puisque les URL seront redirigées vers ce fameux fichier
index.php.
Code : PHP - ./application/config/config.php 1
2
3
4
5
6
7
8
9
10
11
12 | <?php
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
*/
// Dans le cas où mod_rewrite est activé
$config['index_page'] = "";
// Dans le cas contraire
$config['index_page'] = "index.php";
|
Maintenant, vos URL ne contiendront plus le « index.php ».
url_suffix
C'est
le suffixe que vous voulez donner à vos URL. Vous pouvez donner n'importe quoi. CodeIgniter l'ignorera...
Dans mon cas, je vais choisir l'extension html. Vous pourrez tout aussi bien ne rien mettre. C'est facultatif.
Code : PHP - ./application/config/config.php | <?php
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
*/
$config['url_suffix'] = ".html";
|
language
Cette option permet de configurer
la langue par défaut. C'est très utile si vous voulez afficher les erreurs en français et non en anglais.
Cette langue sera aussi utilisée pour les messages d'erreurs lorsque vos formulaires ne seront pas bien remplis. Si vous voulez faire un site en français, prenez le temps de faire cette manipulation.
Si c'est le cas, alors il va falloir modifier certaines choses. Dans un premier temps, passez cette variable à «
french ».
Code : PHP - ./application/config/config.php | <?php
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
*/
$config['language'] = "french";
|
Désormais, lorsqu'il y aura une erreur, CodeIgniter voudra l'afficher en français. Sauf que CodeIgniter ne propose qu'un jeu de langue anglais... Jetez un petit coup d'œil aux fichiers situés dans le répertoire
./system/language/. Il n'y a que le dossier
english.
Vous avez donc deux solutions : traduire l'ensemble des fichiers de langue ou récupérer un fichier de langue sur le web.
Si vous voulez récupérer un fichier de langue, vous pourrez en trouver sur
le wiki officiel ou bien dans les sources de
PyroCMS. C'est un
CMS qui a été développé avec CodeIgniter. Il vous suffit de télécharger ce CMS, de le décompresser et d'aller dans le répertoire
./codeigniter/language/. Dans ce dossier, vous avez accès à une panoplie de langages, dont le français (
french). Il vous suffit donc de déplacer le dossier
french de PyroCMS jusque dans votre répertoire
./system/language/.
Maintenant, CodeIgniter est en mesure d'afficher les erreurs en français.
session
Vous pouvez aussi configurer l'utilisation des
sessions.
Voici ce que vous pouvez paramétrer :
Code : PHP - ./application/config/config.php | <?php
// Le nom du cookie...
$config['sess_cookie_name'] = 'ci_session';
// La date de péremption du cookie, en secondes...
$config['sess_expiration'] = 7200;
|
En plus de cela, CodeIgniter propose de stocker les sessions dans votre base de données au lieu de les stocker dans les cookies.
Si vous stockez souvent beaucoup de données dans les sessions, choisissez évidemment la base de données. Dans la plupart des cas, je vous conseille de prendre cette option car elle offre en plus une sécurité identique aux sessions natives de PHP.
Si vous êtes intéressés par cette fonctionnalité, alors vous devez dans un premier temps créer une table
ci_sessions dans votre base de données.
Ce code vous permettra de générer la table. Il s'agit d'un simple code SQL.
Code : SQL - Création de la table ci_session | CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
|
Une fois ceci fait, vous devez lui dire d'utiliser la base de données.
Code : PHP - ./application/config/config.php | <?php
// La valeur TRUE permet d'utiliser la base de données
$config['sess_use_database'] = TRUE;
// Le nom de la table
$config['sess_table_name'] = 'ci_sessions';
|
compress_output
Cette clé permet d'activer la compression Gzip. Elle est désactivée par défaut car tous les hébergeurs ne supportent pas cette fonctionnalité. Pour rappel, cette compression permet de réduire la taille du contenu envoyé au navigateur. En théorie, les pages devraient se charger plus rapidement.
Lorsque que vous êtes en développement, désactivez cette fonctionnalité car si vous ne respectez pas les standards du MVC, votre page ne s'affichera pas. Il est courant d'utiliser la fonction var_dump un peu n'importe où. Cependant, si vous affichez des données à l'extérieur des vues, l'affichage de votre page plantera.
Maintenant que cela est fait, nous allons configurer notre base de données.
Le fichier database.php
Dans ce fichier, vous noterez vos identifiants et le mot de passe de connexion à votre base de données.
Code : PHP - ./application/config/database.php 1
2
3
4
5
6
7
8
9
10
11
12 | <?php
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
*/
$db['default']['hostname'] = "nom_d_hote";
$db['default']['username'] = "nom_d_utilisateur";
$db['default']['password'] = "mot_de_passe";
$db['default']['database'] = "base_de_donnees";
|
Maintenant, votre base de données est opérationnelle.
Vous avez la possibilité d'inscrire plusieurs bases de données. En effet, la base de données d'exemple utilise la ligne « default ». Vous pouvez ajouter d'autres lignes dans la tableau $db pour gérer tous vos identifiants.
Le fichier autoload.php
Ce fichier vous permet d'inclure dès le lancement de CodeIgniter des bibliothèques, des
helpers, ainsi que des modèles et fichiers de langue.
Bibliothèque
Je vous propose de charger au démarrage du framework deux bibliothèques : les sessions et les bases de données. Je trouve que ce sont des fonctionnalités « élémentaires » qui nécessitent d'être constamment utilisées ou presque.
Pour faire cela, vous devez ajouter dans le tableau les bibliothèques que vous voulez charger.
Code : PHP - ./application/config/autoload.php | <?php
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
*/
$autoload['libraries'] = array('database', 'session');
|
Lorsque vous connaîtrez plus de bibliothèques, ou que vous aurez besoin d'inclure les vôtres, vous pourrez les ajouter à la suite.
Helpers
Nous allons aussi charger un helper :
url. Il nous permettra d'écrire des URL en fonction des paramètres que vous aurez définis dans le fichier
./application/config/config.php. En utilisant ces fonctions, toutes vos URL seront instantanément modifiées si la valeur de
$config['base_url'] est modifiée.
Code : PHP - ./application/config/autoload.php | <?php
/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
*/
$autoload['helper'] = array('url');
|
Nous en avons fini avec la configuration de CodeIgniter.