Cet article va vous permettre d’apprendre à installer et configurer CodeIgniter sur votre hébergement VPS avec LWS. De plus, vous allez apprendre à créer et configurer une application PHP.
Qu’est ce que CodeIgniter ?
CodeIgniter est un framework de développement d’applications web simple pour PHP. Grâce à son approche modulaire, nous pouvons utiliser ses bibliothèques et aides intégrées dans nos applications.
CodeIgniter accélère de façon considérable le développement Web basé sur PHP grâce à un large éventail de bibliothèque et de paquets disponibles.
Afin de pouvoir déployer et utiliser ce framework, vous devez disposer de connaissance en PHP ainsi que d’une certaine expérience en ligne de commande Linux.
1. Installation de Codelgniter
Afin d’installer ce Framework, vous devez disposer d’un serveur VPS et d’un accès SSH à ce dernier.
Dans un premier temps, accéder à votre compte par le biais de votre accès SSH.
Ouvrez le terminal et entrez dans le dossier rattaché à votre nom de domaine. Dans la plupart des cas, la commande sera la suivante:
cd /home/client/web
Le dossier « client » est à remplacer par le nom d’utilisateur de votre nom de domaine.
Il vous est maintenant possible de télécharger la dernière version de Codelgniter en exécutant la commande suivante:
wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.4.zip
Décompressez le fichier:
unzip 3.1.4.zip03
Dans certains cas, il se peut que certaines commandes comme la commande « zip » ne soit pas installé sur votre serveur. Dans ce cas, il vous faudra l’installer avec la commande suivante:
sudo apt-get install zip
Dès que le fichier est décompressé, vous devriez voir un répertoire nommé CodeIgniter-3.1.4. Il vous est possible de renommer ce dernier pour plus de facilité:
mv /home/client/web/CodeIgniter-3.1.4 /home/client/web/codeigniter
Ouvrez votre navigateur Web et indiquez le chemin d’accès à votre framework. Vous devriez accéder à l’écran d’accueil de CodeIgniter.
2. Configuration de CodeIgniter
Comme il s’agit d’une nouvelle configuration de CodeIgniter, il sera nécessaire dans un premier temps, de le configurer. Commencez par créer une nouvelle base de données sur votre VPS.
Il sera nécessaire ensuite de fournir à CodeIgniter, les informations de connexion à la base de données. Il vous est possible d’effectuer la manipulation par ligne de commande:
nano /codeigniter/application/config/database.php
Le contenu du fichier devrait être visible. Il vous faudra trouver la section relative aux informations de connexion à votre base de données. Le fichier de configuration ressemblera à ceci:
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'utilisateur_base'; $db['default']['password'] = 'motdepasse'; $db['default']['database'] = 'nom_base'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE;
Dès que vous avez mis à jour les données avec vos informations, enregistrez et fermer le fichier concerné.
Configurez maintenant votre nom de domaine. Pour cela, il vous faut ouvrir le fichier config.php grâce à la commande suivante:
nano codeigniter/application/config/config.php
Allez jusqu’à la ligne suivante afin de la modifier selon vos besoins:
$config['base_url'] = 'https://votredomaine.com';
2.1 Configurer les hotes virtuels sur votre VPS
Les hôtes virtuels vont vous permettre d’exécuter plusieurs applications en utilisant un seul et unique nom de domaine. Les hôtes virtuels peuvent se créer à l’aide de votre serveur Apache.
Dans un premier temps, vous devez vérifier que la racine de votre document est synchronisée avec le répertoire d’installation de CodeIgniter en exécutant la commande suivante:
sudo nano /etc/apache2/sites-enabled/000-default
Recherchez le bloc suivant et insérez le répertoire d’installation avant DocumentRoot:
<VirtualHost *:80> DocumentRoot /chemin/vers/codeigniter [.......] <VirtualHost *:80>
Assurez-vous de modifier /chemin/vers/ par le chemin réel.
Comme vous pouvez le constater, index.php est la seule partie statique de l’URL. Nous allons nous en débarrasser. Pour cela, ouvrez à nouveau le fichier config.php:
nano codeigniter/application/config/config.php
Et remplacez:
$config['index_page'] = 'index.php';
Par:
$config['index_page'] = '';
Afin de ne pas être bombardé d’erreurs, il est nécessaire de rediriger toutes les demandes en utilisant un fichier .htaccess. Nous allons dans un premier temps, vérifier que le mod_rewrite soit bien actif:
apache2ctl -M
Apache vous communiquera les différentes fonctionnalités actives sur votre serveur. Si mod_rewrite est visible, passez à l’étape suivante. Si vous avez un doute, vous pouvez toujours utiliser la commande suivante afin d’activer ce mode:
a2enmod rewrite
Redémarrez le serveur VPS:
sudo service apache2 restart
Créez ensuite un fichier .htaccess dans le dossier racine de votre framework:
nano codeigniter/.htaccess
Cette commande va créer et ouvrir le fichier .htaccess. Placez les lignes suivantes dans ce fichiers, enregistrez et quittez:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/\RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/$0 [PT,L][PT,L]
Indiquez maintenant à Apache qu’il doit consulter le fichier .htaccess que vous venez de créer.Ouvrez à nouveau le fichier d’hôte virtuel afiond e vous assurer que vous ne verrez pas index.php dans votre URL.
<Directory> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
3. Comprendre l’architecture MVC
Afin de comprendre l’utilité du framework CodeIgniter, il est bon de se consacrer un peu au guide MVC.
Du fait que le framework CodeIgniter s’inscrit dans une logique de Programmation orientée objet (OOP), les contrôleurs présents sont des classes PHP. Les vues disponibles sont également des fichiers PHP, mais uniquement dans leur nom, car la majeure partie est en HTML/CSS. Seuls des extraits de code PHP sont présents afin d’afficher les données fournies par les modèles.
3.1 Bases de routage
Vous avez pu voir dans la section précédente, comment CodeIgniter forme ses chaînes d’URL mais aussi la méthode permettant de supprimer index.php de votre URL. De ce fait, ce modèle se traduit par des URL similaires à celles suivantes:
https://votredomaine.com/welcome/test/1
Pour cet exemple, welcome est une classe de contrôleur qui correspond à un fichier nommé welcome.php. Il appellera la fonction test() et utilisera « 1 » comme paramètre.
3.2 Bibliothèques
L’autre particuliarité de CodeIgniter est qu’il va vous encourager à utiliser des solutions existantes pour créer rapidement vos tâches courantes. CodeIgniter vous fourni des bibliothèques et des fonctions aucxiliaires (helpers).
Vous pouvez, selon vos besoins, charger une bibliothèque dans CodeIgniter. Pour exemple, si vous désirez charger la bibliothèque de base de données, il vous suffira d’exécuter la commande suivante:
$this->load->database();
Certaines bibliothèques sont utilisé tellement souvent qu’il est préférable de les charger dès le démarrage de votre application. Par exemple, afin de charger automatiquement la base de données, ouvrez le fichier suivant:
nano application/config/autoload.php
Remplacez la ligne suivante:
$autoload['libraries'] = array();
Par:
$autoload['libraries'] = array('database');
Il vous est possible de charger automatiquement d’autres bibliothèque en utilisant array().
Pour les helpers, vous devez remplacer la ligne suivante:
$autoload['helper'] = array();
Par:
$autoload['helper'] = array('url');
Grâce à cette mise en bouche concernant MVC, vous serez en mesure d’apprécier davantage les fonctionnalités de CodeIgniter.
4. Créer une application simple avec CodeIgniter
Si vous avez suivi toutes les étapes de cet article, vous devriez avoir une distribution exécutant CodeIgniter parfaitement. Vous en savez aussi davantage concernant le fonctionnement des contrôleurs, des modèles et des vues. Nous allons désormais utiliser ces connaissances afin de créer une application simple permettant d’extraire des notes de critique de film de notre base de données et les montrer en utilisant notre vue.
4.1 Pré-requis
Comme indiqué précédemment, il est nécessaire d’avoir des connaissances concernant les bases de données MySQL. Nous allons créer une table intitulée reviews et comprenant 3 colonnes nommées id (clé primaire et auto-incrémentée), title et grade.
Afin que cela fonctionne, il faudra que le framework CodeIgniter est accès à cette base de données.
4.2 Le modèle
IL est désormais possible de travailler sur la logique métier. Nous allons donc créer un modèle afin d’obtenir les valeurs de la base de données.
Tous les modèles se trouvent dans le répertoire applications/models de votre framework. Accédez au répertoire et créez un nouveau fichier PHP que vous allez nomer reviews_model.php.
nano reviews_model.php
Collez ensuite le code suivant dans le fichier:
<pre class="lang:default decode:true " ><?php print $title; print $grade; ?></pre>
Vous allez maintenant devoir charger la bibliothèque de base de données qui a été vu à l’étape 3 afin de la faire fonctionner. Pour cela, collez le code suivant dans la classe créée ci-dessous:
public function __construct() { $this->load->database(); }
La base de données est devenue visible. IL va falloir créer une autre méthode qui sera en mesure d’utiliser cette bibliothèque de base de données:
public function get_reviews($id) { if($id != FALSE) { $query = $this->db->get_where('reviews', array('id' => $id)); return $query->row_array(); } else { return FALSE; } }
4.3 Le contrôleur
Il faut désormais créer le routing afin de pouvoir fournir les informations lorsqu’un utilisateur demande des critiques de films.
Afin de créer un nouveau contrôleur, accédez au répertoire applications/controllers. Créez ensuite un fichier nommé reviews.php.
<?php class Reviews extends CI_Controller { } ?>
Il vous reste à empiler les données extraites de notre modèle et de passer à la vue. Pour cela, il faut créer une méthode appelée show() afin de lier les données à une nouvelle structure créée et charger la vue.
public function show($id) { $this->load->model('reviews_model'); $reviews = $this->reviews_model->get_reviews($id); $data['title'] = $reviews['title']; $data['grade'] = $reviews['grade']; $this->load->view('movie_review', $data); }
4.4 La vue
La dernière étape consiste a créer la vue qui va vous permettre d’afficher les critiques de films demandées.
Rendez-vous dans le dossier applications/views afin de créer un nouveau fichier intitulé movie_review.php. Après la création de votre fichier, collez le code suivant à l’intérieur:
<?php print $title; print $grade; ?>
La vue affichera simplement le titre du film et la note.
Conclusion
J’espère que ce tutoriel vous a été utile afin de comprendre comment utiliser le framework CodeIgniter.
Vous en savez désormais plus sur CodeIgniter, son installation, sa configuration mais aussi son fonctionnement. De plus, vous êtes aussi en mesure de créer une application simple à l’aide de ce framework. Vous allez maintenant pouvoir créer des applications beaucoup plus complexes en utilisant les bibliothèques, modèles et vues de CodeIgniter.