Votre guide dans les plaines du far-web

Formation développeur web


« Donne un poisson à un homme, tu le nourris pour un jour. Apprends-lui à pêcher, tu le nourris pour toujours. » Lao Tseu

Généralités

Mis à jour le Lien vers la doc officielle de CodeIgniter 3 (EN) : https://codeigniter.com/userguide3/index.html ~~ Fin de l'extrait ~~

Présentation du concept de framework

Mis à jour le

Si vous êtes dans ce cours, c'est que vous savez déjà codé un minimum. Les concepts de base de la programmation n'ont déjà plus aucun secret pour vous, et vous avez déjà codé de nombreuses fonctionnalités au travers de vos expériences personnelles ou professionnelles.

Vous avez donc remarqué que certaines tâches…

~~ Fin de l'extrait ~~

Code Igniter : un framework PHP

Mis à jour le

(image visible sur la plateforme de formation)

CodeIgniter est un des frameworks PHP les plus populaires. Il tire sa popularité de sa légèreté, et de la facilité avec laquelle on peux le prendre en main. L'inconvénient, c'est qu'il offre moins de fonctionnalités qu'un framework plus complet tel que…

~~ Fin de l'extrait ~~

Le design pattern MVC

Mis à jour le

La grande majorité des frameworks PHP sont organisés autour d'une implémentation des design patterns Modèle / Vue / Contrôleur (on parle alors de MVC). Ce choix techniques s'est avéré trés adapté pour la réalisation d'applications web. Bien que remis en cause avec la popularisation des architecture d'API REST, il n'en…

~~ Fin de l'extrait ~~

Installation

Mis à jour le

Pour installer CI, c'est très simple. Il vous suffit de télécharger l'archive sur le site officiel, puis de l'extraire dans votre dossier de projets web. Une fois que c'est fait, vous n'avez qu'à ouvrir l'URL correspondat au dossier, et le fichier index.php vous affichera quelque chose comme ceci :

(image visible sur la plateforme de formation)

~~ Fin de l'extrait ~~

Architecture de CodeIgniter

Mis à jour le

Racine du dossier

(image visible sur la plateforme de formation)

La racine est composée de 2 dossier imortant, et de quelques fichiers plus ou moins important :

  • le dossier "system" : c'est le cœur de CI. C'est dans ce dossier que sont…
~~ Fin de l'extrait ~~

Routage

Mis à jour le

Le routage dans CI est assez simple a utilisé. Il se gère principalement dans le fichier routes.php dans le dossier /config.


Routage automatique

Il existe un mode "par défaut", ou le choix du contrôleur, de la méthode et des paramètres se fait directement en fonction de ce qu'il y…

~~ Fin de l'extrait ~~

Contrôleur

Mis à jour le

Maintenant que nous avons vu l'architecture standard de CI, nous allons créer notre premier contrôleur. 

Mise en place du contrôleur

Dans votre dossier application/controllers, créez un nouveau fichier Test.php, sur la même base que Welcome.php. Une fois que c'est fait, renommez la classe Welcome, en classe Test. Puis dans la…

~~ Fin de l'extrait ~~

Utiliser les fonctionnalités de CI

Mis à jour le

Quand vous écrivez du code dans vos méthodes de contrôleur, vous êtes en POO. Donc vous manipulerez souvent la variable $this. Dans CI, on peut appeler tout un tas de choses directement via l'objet courant $this, qui hérite du contrôleur principal de CI. 

Vous allez pouvoir charger des éléments du…

~~ Fin de l'extrait ~~

Charger des vues

Mis à jour le

Maintenant que nous avons vu comment fonctionne le contrôleur, voyons comment fonctionne la vue. L'idée est simple : on va utiliser la méthode load de l'objet "global" (qui est disponible dans les contrôleurs via l'utilisation de la variable $this), puis lui demander de charger une vue en lui donnant le…

~~ Fin de l'extrait ~~

Modèle

Mis à jour le
Créer un modèle

Le modèle est la partie qui va se charger des données "brutes", il abrite très peu de logique, et pas du tout d'affichage. Dans CI, pour créer un nouveau modèle de données (modèle), il suffit de créer un fichier dans le dossier models, de respecter la syntaxe Nomdumodel_model.php,…

~~ Fin de l'extrait ~~

Base de données

Mis à jour le

Maintenant que nous savons comment fonctionne le modèle, on va rajouter la notion de base de données à notre exercice. Pour ce faire, commencer par créer une nouvelle base de données dans votre environnement, et récupérez toutes les informations d'authentification habituelles (nom, password, hôte, etc...).


Configurer les données d'authentification à la…
~~ Fin de l'extrait ~~

Query Builder

Mis à jour le

CI vous offre une deuxième manière de préparer et d’exécuter vos requêtes SQL. Le Query Builder est une classe à part, en plus de la classe Database, qui va vous permettre de construire des requêtes SQL en écrivant le moins possible de SQL. Vous allez pouvoir "coder" la construction de…

~~ Fin de l'extrait ~~

Dossier public

Mis à jour le

Pour l'instant, notre site ne comporte aucun fichier "publique" (javascript, css, images, etc...). On va donc mettre en place ce dossier, et y placer quelques images que nous appellerons dans nos trois vues :

  1. créer un dossier assets à la racine de votre projet
  2. créez un dossier img dans votre dossier assets
  3. téléchargez…
~~ Fin de l'extrait ~~

Configuration

Mis à jour le

La configuration de votre application se fait dans le dossier config de CI. Ce dossier contient tout une série de fichier pour configurer les différents aspects de votre application :

  • config.php : config de base (url, langue, encodage, etc...)
  • autoload.php : qui permet de charger automatiquement…
~~ Fin de l'extrait ~~

Librairies

Mis à jour le

Au même titre que le routeur, les librairies ne font pas à proprement parler parties du design pattern MVC. Ce sont des outils supplémentaires fournis par le framework, mais qui s'intègrent correctement à la façon de faire de CodeIgniter. Vous allez donc pouvoir les utiliser facilement, et faire un travail…

~~ Fin de l'extrait ~~

Helpers

Mis à jour le

Les helpers sont comme des librairies, mais généralement plus légèrs, et écrits en procédurale. Elles vous permettent de bénéficier de quelques fonctionnalités simples, mais utiles, en plus des "grosses" librairies.

Les helpers sont des séries de fonctions traitant du même thème. Il suffira alors de charger le helper en question,…

~~ Fin de l'extrait ~~

Layout

Mis à jour le

CodeIgniter3 ne propose pas de librairies de Layout par défaut, il faut gérer ça comme une librairie personnelle, ou bien trouver quelque chose sur Internet qui fasse le job.

Note : pour ceux qui ne savent pas encore ce qu'est un layout, nous en parlerons rapidement à l'oral.…
~~ Fin de l'extrait ~~

Profiler

Mis à jour le

Le profiler est un outils inclut dans CodeIgniter qui vous permet d'afficher de nombreuses informations techniques concernant la page en cours, telles que :

  • les données de GET/POST (input)
  • le temps d'exécution 
  • les requêtes SQL exécutées
  • les headers HTTP
  • etc etc...


Il s'active facilement via…

~~ Fin de l'extrait ~~

Surcharge des classes système

Mis à jour le

CodeIgniter vous permet de facilement surcharger les classes système, les librairies et helpers. Pour cela, il vous suffit de respecter les conventions de nommage de vos fichiers, et de les placer dans les bons dossiers. Automatiquement, CodeIgniter chargera vos classes personnalisées en enfant des classes systemes.

Voici un exemple avec…

~~ Fin de l'extrait ~~

Internationalisation

Mis à jour le

Avec CI, vous bénéficiez d'une internationalisation déjà existante sur toutes les librairies standard. Cela veux dire que les messages destinés à l'utilisateur sont traités dans un fichier à part, qui est automatiquement appelé lorsque la librairie doit renvoyer des erreurs, ou divers message. Par défaut, la langue est l'anglais, mais…

~~ Fin de l'extrait ~~

Travaux pratique

Mis à jour le

Afin de s'entrainer sur CodeIgniter3, je vous propose de réaliser un CMS de gestion de carte de restaurant. L'idée est simple : permettre au restaurateur/café/bar de proposer une carte en ligne à leur client. Bref, remplacer la carte "à l'ancienne" par une version numérique. Vous pouvez bien évidemment réaliser cette…

~~ Fin de l'extrait ~~