Magazine High tech

Introduction et installation de CodeIgniter (partie 1)

Publié le 11 mars 2009 par Ekevin

Introduction

CodeIgniter est un framework PHP destiné à réduire votre temps de développement ainsi qu’à structurer votre code. Il existe en réalité une kyrielle de framework PHP et le choix de CodeIgniter plutôt qu’un autre framework réside dans la souplesse de CodeIgniter. CI (pour les intimes) est très facilement compréhensible pour les débutant dans la POO. De plus ce framework venant tout droit de chez EllisLab, promet déjà un avenir dans le monde des frameworks PHP, moins connu que CakePHP et Zend Framework, CI n’en possède pas moins une bonne communauté (surtout anglophone) ainsi qu’une documentation bien fournie.

À titre indicatif voici une traduction de la page d’accueil du site:

CodeIgniter est un puissant framework doté d’une faible consommation, conçu pour des codeurs PHP ayant besoin d’un outil simple et élégant pour créer des applications entières. Si vous êtes un développeur qui vivez dans un monde d’hébergements mutualisés et de clients avec des deadlines et si vous êtes fatigués des frameworks non documentés…

Dans ce qui va suivre et suivant le lectorat je vous propose de vous montrer les “basiques” pour mettre en place sous CI. Dans cette partie plus précisément nous mettrons en place le framework sur votre serveur local. Je supposerais que vous disposez déjà d’un environnement de développement (le fameux trio apache, PHP et MySQL). Si vous ne disposez pas d’un cadre de développement je vous conseille largement d’aller regarder les différents tutoriels : pour windows vous avez XAMPP, mac. MAMPP et pour Linux vous pouvez vous référer à la documentation de votre distribution.

Ce tutoriel, ainsi que ceux qui vont suivre supposeront que vous ayez déjà des connaissances en PHP et plus particulièrement quelques bases en programmation objet. Quelques notions sur l’architecture MVC est un gros plus.

Voici quelques liens intéressants permettant d’acquérir ses bases :

Installation

Il suffit de télécharger la version courante à cette adresse : http://codeigniter.com/downloads/

À l’heure où j’écris ces quelques lignes la version courante est la 1.7.1. Une fois l’archive téléchargée, il suffit de dézipper le contenu de votre répertoire à la racine de votre serveur. Sous linux nous pouvons extraire le contenu dans /var/www/tut et ensuite régler son VirtualHost à la racine de tut. Sous Windows et Mac l’extraction est similaire mis à part que le dossier de XAMPP ou MAMP devrait être htdocs.

À titre d’exemple voici un extrait de mon fichier VirtualHost et de mon fichier host (mon répertoire de base est /var/www/tut et mon domaine fictif est tu.pasunclou) :

1
2
3
4
5
6
7
8
9
10
        ServerName <strong>tutpasunclou</strong>
        DocumentRoot <strong>/var/www/tut</strong>
        <strong>&lt;Directory /var/www/tut</strong>&gt;
                Options Indexes FollowSymLinks MultiViews
                <strong>AllowOverride All</strong>
                Order allow,deny
                allow from all
        &lt;/Directory&gt;
 
...

127.0.0.1       localhost
127.0.0.1       tut.pasunclou
127.0.0.1       places
127.0.1.1       ubuntu.ubuntu-domain    ubuntu
...

Les paramètres important sont en gras. Concernant la directive AllowOverride, elle nécessite d’activer mod_rewrite, sous MAMP et XAMPP il suffit de décommenter la ligne relative à la réécriture d’url, sous Linux il faut activer mod_rewrite en tapant a2enmod mod_rewrite. N’oubliez pas de redémarrer apache après toutes ses opérations.

Si tout se passe bien maintenant index.php devrait être à la racine de votre site. Chaque URL du site par défaut se fera de cette manière : http://tut.pasunclou/index.php/controller/action

Par défaut nous accédons à nos URL de la manière suiviante http://tut.pasunclou/index.php/controller/action

Si nous voulons créer une sorte de raccourci pour accèder à notre controller et notre action sans le index.php, créez un fichier .htaccess à la racine de /var/www/tut contenant les lignes suivantes :

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Voici quelques liens pour vous aider à paramétrer votre virtualhost sous Windows et Mac (avec XAMPP et MAMP) :

Structure des répertoires

Connaître la structure des répertoires dans un framework ou dans toute autre application de développement est essentielle. Non seulement cette connaissance vous permet d’architecturer correctement votre application, mais elle permet également au développeur de savoir ce qu’il fait.

À la racine de /var/www/tut vous devriez voir deux fichier (licence.txt et index.php) ainsi que deux répertoire (system et user_guide).
Voici mon arborescence :

/var/www/tut/
|—->/user_guide/

|—->/system/
|—->/application/
|——->/config/
|——->/controllers/
|——->/errors/
|——->/helpers/
|——->/hook/
|——->/language/
|——->/libraries/
|——->/models/
|——->/views/

|—->/cache/
|—->/codeigniter/
|—->/database/

|-index.php
|-license.txt

Le répertoire system est le répertoire où nous allons passer la majorité de notre temps il contient tous les éléments nécessaire au framework CI.
Dans le répertoire system, le dossier application est l’endroit où nous allons déployer notre application, il contient entre autre les répertoires suivants :

  • config : c’est ici que se trouve tous nos fichiers de configurations. Nous pouvons y renseigner la connexion à la base de données faire appel à l’autoloader, ajouter des paramètres, etc…
  • controllers : le controller permet de communiquer des données collectées au model à la vue.
  • errors : contient des templates pour les erreurs générées, nous y trouvons entre autre les erreurs 404.
  • helpers : contient tous les helpers nécessaires à l’application. Un helper est une série de fonctions permettant d’automatiser des tâches souvent répétitives.
  • hook : ce dossier est réservé à des utilisateurs avancés il permet de modifier le comportement de CI
  • language : est utile lors d’une utilisation pour un site multi-langues.
  • libraries : c’est ici que nous placerons nos librairies
  • plugins : est l’endroit ou nous mettrons des plugins tiers ou les nôtres.
  • models : c’est le répertoire où nous stockerons nos models qui interagisseront avec une bdd, un flux rss…
  • views : tout ce qui concerne le rendu final. Nous y stockerons nos templates.

Toujours dans le dossier system :

  • Le répertoire cache est l’endroit où nous stockerons ce qui est mis en cache par la librairie Cache ou par le moteur de template
  • Le répertoire codeigniter contient toute la logique interne de CI.
  • Le dossier database stock contient tous les drivers ainsi que les class pour se connecter à la base de données.
  • Le dossier fonts contient les fontes utiliser par la librairie image.
  • Le dossier des helpers contient tous les helpers incluent dans CI (utilisation des cookies, des e-mails…).
  • Le dossier language contient les fichiers langues pour CI.
  • Le dossier des libaries contient les librairies du coeur de CI.
  • Le dossier logs contiendra tous les rapports que nous générerons avec CI.
  • Le dossier plugin contient tous les plugins que vous pouvez utiliser (captcha et calendar).
  • Le dossier scaffolding contient tous les fichiers permettant de faire fonctionner le scaffolding. Cependant nous laisserons de côté cette classe étant donné que PHPMyAdmin remplissent le même travail.

Enfin le dossier user_guide est tout simplement la documentation de CodeIgniter.

Vous remarquerez sûrement des similarités avec le dossier application. La raison en est simple, nous distinguons les éléments de base de CI et les nôtres. Ainsi, si nous souhaitons écrire une librairie qui prend en charge le moteur de template de Smarty, nous la placerons dans notre dossier application. Nous utilisons le core de CodeIgniter et nous étendons ses actions dans notre application.

À noter : il est possible de ne pas exposer son répertoire au monde entier, le fichier /var/www/tut/index.php permet de spécifier d’autres répertoires que l’installation par défaut. Cette configuration ne s’applique donc pas pour un déploiement en production. Plus d’informations à l’intérieur de ce fichier.

Jusqu’ici, beaucoup de paramètres à prendre en compte et toujours aucune action de notre part si ce n’est configurer un VirtualHost et extraire les fichiers à la racine de notre site. Cependant vous pouvez déjà apercevoir la page de bienvenue du framework (en ce qui me concerne en tapant http://tut.pasunclou)

Ecran d'accueil d'une installation de CodeIgniter

Ecran d'accueil d'une installation de CodeIgniter

Une première approche du fichier config.php

Toute la configuration de notre site se trouve dans le dossier config. Nous pouvons y paramétrer une base de données, les fichiers à charger automatiquement, les paramétres de notre site, le router… Pour notre premier tutoriel nous allons ouvrir le fichier application/config/config.php et renseigner nos premiers paramètres. Le fichier config.php est très bien documenté chaque valeur est précédé d’un paragraphe nous indiquant comment remplir ces valeurs. Voici les différents paramètres nous intéressant :

$config['base_url'] = ‘http://tut.pasunclou/’;

$config['language'] = “french”;

Jusqu’ici rien de bien compliqué, excepté que la ligne language n’a que très peu d’intérêt étant donné que nous n’avons pas de dossier french dans notre répertoire application/language… Cependant si vous êtes un peu curieux vous remarquerez qu’il est possible de changer le nom des sous-classes pour les librairies ou encore qu’il est possible de paramétrer le dossier du cache et des logs, de définir une clef d’encryption pour les sessions, … Nous n’y toucherons pas pour l’instant, mais il est toujours bon d’avoir un rapide aperçu de ce fichier.

Un dernier point avant de clore ce premier tutoriel, n’hésitez pas à lire quelques parties de la documentation concernant les conventions de nommage des fichiers et des classes : http://codeigniter.com/user_guide/general/styleguide.html

Si vous avez des suggestions pour les prochains tutoriels ou des remarques, n’hésitez pas à commenter.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Ekevin 5 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte