Mettez du feu à vos application
web ave CodeIgniter
Journée du Code, ESATIC - 27 Octobre 2018
“
2
Êtes-vous prêt.e ?
#MaintenantCodons
3
Je m’appelle François KOBON, Consultant
Spécialiste en Développement Web/Mobile/CMS.
Hey, Hello !
Suivez-moi sur Twitter @fkobon et mon blog fkobon.ci
Le Plan d’attaque
4
Introduction aux Frameworks
On code pas un peu ?
Pourquoi CodeIgniter ?
Conclusion
CodeIgniter (1/4)
Introduction aux Frameworks
‣ Un Framework, Kézako ?
‣ Fonctionnement du MVC
‣ Avantages / Inconvénients
‣ Exemples
6
Introduction aux Frameworks
1. Un Framework,
Kézako ?
7
Existe dans tous les langages (C++, PHP, Java…)
Framework « Cadre de travail », facilite le travail du dev
Code structuré, un ensemble de fonctions/classes
déjà implémentée et prête à l’emploi.
Bundle
Permet d’intégrer du code/fonctionnalités déjà
écrit (réutilisable dans divers projets, écrit par/
pour la communauté).
2. Fonctionnement
du MVC
8
Structure une application :
‣ Présentation
‣ Base de donnée
‣ Applicative
Model > le modèle manipule les données, requête BDD, calcule, transformation
View > affiche la donnée, formulaire HMTL, interface graphique
Controller > tout le reste, liaison Vue-Modèle, gestion des évènements
3. Avantages &
Inconvénients
9
Avantages
‣ Maintenance facile (Design & Code)
‣ Lecture facile du code une fois habitué
‣ Documentation + Communauté
‣ Implémentation facile grâce aux Bundle
Inconvénients
‣ Trois fichiers minimum pour une page
‣ Prise en main demande assez de pratique
‣ Contraintes pour coder
4. Exemples
10
JavaScript PHP
Java
Python
Deep Learning
CodeIgniter (2/4)
Pourquoi CodeIgniter ?
‣ Co.. co.. codeIgni…, ça se mange ?
‣ Comment ça marche ce machin ?
‣ Structure et Aborescence
‣ Alors on l’installe de p*** de truc ?
6
A la découverte de CodeIgniter
1. C’est quoi
CodeIgnter ?
13
Sortie de la v1 le 28 février 2006
CodeIgniter est un framework PHP permettant de
construire des applications web (aussi des site
Internet) aussi robuste que sécurisé, modulable et
évolutive.
14
Framework mal léger
Pourquoi CodeIgnter ?
Solutions simples / complexité Documentation claire
Performance exceptionnelle Forte sécurité Zéro configuration (enfin presque)
15
C’est ICI que vous allez coder !
CodeIgniter est basé sur le concept de Programmation Orientée
Objet (POO) et sur l’architecture MVC. Il offre :
Des classes références :
‣ « config » pour récupérer toute votre configuration. Vous aller pouvoir
personnaliser votre Framework ;
‣ « database » pour les bases de données ;
‣ « form_validation » pour simplifier la vérification de vos formulaires ;
‣ «  session  » pour les sessions. CodeIgniter n’utilise pas les sessions
natives mais son propre système ;
‣ …
1. Pourquoi
CodeIgnter ?
16
C’est ICI que vous allez coder !
CodeIgniter est basé sur le concept de Programmation Orientée
Objet (POO) et sur l’architecture MVC. Il offre :
Des helpers
‣ « URL Helpers » vous aideront dans la création de vos lien ;
‣ « Form Helpers » vous aideront à la création de vos formulaires ;
‣ «  Text Helpers  » vous permettrons de manipuler des chaines de
caractères.
‣ « File Helpers » vous aiderons à manipuler les fichiers ;
‣ …
Les Helpers (ou fonction d’aide), et comme leur nom l’indique, son là pour vous aider. Chaque
fichier d’aide représente un ensemble de fonctions dans une catégorie particulière.
Les Helpers références, se trouvent par défaut dans le Framework
1. Pourquoi
CodeIgnter ?
2. Comment ça
marche
17 Diagramme d'application
Le graphique suivant illustre la manière dont les données circulent dans le système:
‣ Le fichier index.php sert de contrôleur frontal, initialisant les ressources de base nécessaires à
l'exécution de CodeIgniter.
‣ Le routeur examine la requête HTTP pour déterminer son utilisation.
‣ Si un fichier cache existe, il est envoyé directement au navigateur, ignorant l'exécution normale du
système.
2. Comment ça
marche ?
18 Diagramme d'application
Le graphique suivant illustre la manière dont les données circulent dans le système:
‣ Sécurité. Avant le chargement du contrôleur d'application, la demande HTTP et les données soumises
par l'utilisateur sont filtrées pour la sécurité.
‣ Le contrôleur charge le modèle, les bibliothèques principales, les assistants et toutes les autres
ressources nécessaires au traitement de la demande spécifique.
‣ La vue finalisée est rendue puis envoyée au navigateur Web pour être vue. Si la mise en cache est
activée, la vue est d'abord mise en cache afin d'être servie lors des demandes suivantes.
Contenu du dossier codeigniter :
▫ application/ c'est le dossier dans lequel nous allons travailler
▫ system/ c'est le dossier qui contient le cœur de CodeIgniter. Vous
ne devez jamais modifier son contenu !
▫ user_guide/ la même doc que celle disponible en ligne.
Vous pouvez supprimer ce dossier.
▫ composer.json WTF mdr, composer, le gestion de dépendance
PHP ça vous parle ?
▫ le fichier index.php c'est le fichier que l'internaute appellera
lorsqu'il se connectera à votre site. Il est très important, à ne pas
toucher.
19
3. Structure /
Arborescence
Contenu du dossier application :
▫ config/ ce dossier contient la configuration de notre site
▫ controllers/ la liste de nos contrôleurs (c'est la prochaine étape)
▫ helpers/ la liste de nos helpers (nous en parlerons plus tard).
▫ models/ la liste de nos modèles (nous en parlerons plus tard).
▫ views/ la liste de nos vues (nous en parlerons plus tard)
20
3. Structure /
Arborescence
Le dossier application est celui dans lequel nous allons passer tout notre temps. Comme vous pouvez le voir, il a de nombreux
sous-dossiers. Voici ceux qui vont nous intéresser. Ignorez les autres dossiers pour le moment, nous y reviendrons plus tard.
CodeIgniter (3/4)
On code pas un peu ?
Trêve de bavardage !
Ouvrez vos éditeurs à la page 2
Les contrôleurs représentent le cœur de votre application. Ils
vont faire le lien entre les données et l'affichage. Ils seront la
"logique" de votre application.
23
3. Les controllers
Fonctionnement des contrôleurs
Dans le dossier controllers vous trouverez un fichier welcome.php, ouvrez le. Plusieurs
choses nous intéresse :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index() {
$this->load->view('welcome_message');
}
}
24
3. Les controllers
Les urls avec CodeIgniter
Si vous avez bien suivi, vous vous demandez certainement comment ça se fait que
lorsque vous allez sur votre site c'est le contrôleur Welcome qui est chargé.
En fait, CodeIgniter utilise un système de routes très simple. Le contrôleur est
directement renseigné dans l'url.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Par convention, le nom de la classe a une majuscule
class Utilisateur extends CI_Controller {
// La méthode profil qui sera appelé a un paramètre "$id". Dans notre exemple, il vaudra 1.
public function profil($id) {
}
}
25
3. Les controllers
Controller par défaut
Si nous ne mettons aucun argument, nous appelons directement le domaine.
nous pouvons définir quel contrôleur sera appelé si aucun n'est spécifié. Ouvrez le fichier
application/config/routes.php et regardez cette ligne :
$route['default_controller'] = "welcome";
Supprimer le index.php des urls CodeIgniter
Vous pouvez supprimer si cela vous chante le index.php de vos lien codeigniter. Pour le
faire créer un fichier .htaccess et ajouter cette portion de code :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Ouvez application/config/config.php puis passez
la variable $config[‘index_page'] à vide
$config[‘index_page'] = "index.php"; > $config[‘index_page'] = « ";
26
3. Les vues
Si vous vous rendez dans le dossier views dans application, vous verrez la vue
welcome_message, ouvrez la. Vous trouvez une page HTML toute simple.
C'est celle-ci qui est affichée à l'écran lorsque vous affichez le site.
Comment ça marche ?
Comprendre la notion de vue
Une vue est tout simplement un fichier .php qui va contenir le html de votre
page. L'idée est d'appeler la vue depuis le contrôleur afin de lui envoyer des
données préalablement récupérées. La vue se chargera d'intégrer ces
données dans le format HTML classique.
Comme en PHP, il est possible d'imbriquer (include) les vues entre elles.
L'idée étant bien sûr d'éviter au maximum la redondance.
Charger une vue
Comme nous l’avons vu précedement, l’affichage d’une vue est assez simple,
une seule ligne suffit dans le contrôleur.
$this->load->view('welcome_message');
27
3. Les vues
Envoyer les données à la vue
La fonction view() prend d'autres paramètres. Comme nous l'avons vu, le
premier est le nom de la vue. Le deuxième est un tableau qui va contenir les
données que nous allons envoyer à la vue.
Reprenons notre exemple de tout à l’heure
Nous voyons que nous passons un tableau associatif à la vue. Ce faisant, il est
maintenant très simple de récupérer les données dans la vue (fichier
profil.php) en faisant :
class Utilisateur extends CI_Controller {
public function profil() {
$data = array('nom' => 'Robert');
$this->load->view('utilisateur/profil', $data);
}
}
echo $nom; // ceci affichera "Robert"
Et oui ! La clé du tableau devient le nom de la variable. C'est aussi simple que ça.
28
3. Les vues
Stocker la vue dans une variable
La fonction view() prend également un troisième paramètre très
intéressant. Si vous le mettez à true, la vue ne s'affichera pas
directement, elle sera retournée. Cela signifie que vous pourrez stocker
le contenu de la vue dans une variable.
Tout d'abord, il faut créer une vue template.php à la racine du dossier
views et insérez y le code suivant :
$html = $this->load->view('utilisateur/profil', $data, true);
Créer un système de template avec CodeIgniter
Avec tout ceci, nous allons pouvoir créer un système de template. Sur
un site Internet, il y a toujours des parties qui sont identiques pour
chaque page (header et footer notamment). Nous pouvons facilement
créer un système permettant de gérer cela.
29
3. Les vues
<html>
<head>
<title>Ma page</title>
</head>
<body>
<header>Ceci est le header</header>
<div>
<!-- La vue s'affichera ici -->
<?php echo $page; ?>
</div>
<footer>Ceci est le footer</footer>
</body>
</html>
Ce sera toujours cette vue que l'on appellera. Lors de cel appel, il nous
suffira de lui passer en paramètre le contenu d'une autre vue que l'on
aura instanciée dans la variable $page. Le contrôleur ressemblera donc
à ceci :
30
3. Les vues
class Utilisateur extends CI_Controller {
public function profil() {
$data = array('nom' => 'Robert');
// On stocke notre page dans la variable $page
$page = $this->load->view('utilisateur/profil', $data, true);
// On affiche notre page avec le template
$this->load->view('template', array('page' => $page));
}
}
Bien sûr vous pouvez facilement adapter un tel système à vos besoins
et y ajouter quelques fonctionnalités plus robuste.
Les contrôleurs représentent le cœur de votre application. Ils
vont faire le lien entre les données et l'affichage. Ils seront la
"logique" de votre application.
31
3. Les modèles
Fonctionnement des contrôleurs
Dans le dossier controllers vous trouverez un fichier welcome.php, ouvrez le. Plusieurs
choses nous intéresse :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index() {
$this->load->view('welcome_message');
}
}
Wo, wo, wo du calme on y va maintenant
32
Tchai djo, c’est pour quand la pratique ?
https://github.com/fkobon/codons-j2code
CodeIgniter (4/4)
Conclusion
CONCLUSION
CodeIgniter, est un f ramework facile à apprendre, qui
permet de gagner beaucoup de temps et de garantir la
sécurité de vos applications web
‣ Un Framework peu s’avéver très utile,
‣ Diversité de Framwork disponible
‣ Bien choisir son f ramework en fonction de ses
besoins et du type de projet
Merci !
Suivez-moi sur @fkobon sinon laissez-moi un petit mail, je me
ferai le plaisir de vous répondre francois.kobon@ayiyikoh.org.
En passant, mon fkobon.ci et laissez-moi quelques commentaires.
Journée du Code 2018
#MaintenantCodons

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter

  • 1.
    Mettez du feuà vos application web ave CodeIgniter Journée du Code, ESATIC - 27 Octobre 2018
  • 2.
  • 3.
    3 Je m’appelle FrançoisKOBON, Consultant Spécialiste en Développement Web/Mobile/CMS. Hey, Hello ! Suivez-moi sur Twitter @fkobon et mon blog fkobon.ci
  • 4.
    Le Plan d’attaque 4 Introductionaux Frameworks On code pas un peu ? Pourquoi CodeIgniter ? Conclusion
  • 5.
  • 6.
    ‣ Un Framework,Kézako ? ‣ Fonctionnement du MVC ‣ Avantages / Inconvénients ‣ Exemples 6 Introduction aux Frameworks
  • 7.
    1. Un Framework, Kézako? 7 Existe dans tous les langages (C++, PHP, Java…) Framework « Cadre de travail », facilite le travail du dev Code structuré, un ensemble de fonctions/classes déjà implémentée et prête à l’emploi. Bundle Permet d’intégrer du code/fonctionnalités déjà écrit (réutilisable dans divers projets, écrit par/ pour la communauté).
  • 8.
    2. Fonctionnement du MVC 8 Structureune application : ‣ Présentation ‣ Base de donnée ‣ Applicative Model > le modèle manipule les données, requête BDD, calcule, transformation View > affiche la donnée, formulaire HMTL, interface graphique Controller > tout le reste, liaison Vue-Modèle, gestion des évènements
  • 9.
    3. Avantages & Inconvénients 9 Avantages ‣Maintenance facile (Design & Code) ‣ Lecture facile du code une fois habitué ‣ Documentation + Communauté ‣ Implémentation facile grâce aux Bundle Inconvénients ‣ Trois fichiers minimum pour une page ‣ Prise en main demande assez de pratique ‣ Contraintes pour coder
  • 10.
  • 11.
  • 12.
    ‣ Co.. co..codeIgni…, ça se mange ? ‣ Comment ça marche ce machin ? ‣ Structure et Aborescence ‣ Alors on l’installe de p*** de truc ? 6 A la découverte de CodeIgniter
  • 13.
    1. C’est quoi CodeIgnter? 13 Sortie de la v1 le 28 février 2006 CodeIgniter est un framework PHP permettant de construire des applications web (aussi des site Internet) aussi robuste que sécurisé, modulable et évolutive.
  • 14.
    14 Framework mal léger PourquoiCodeIgnter ? Solutions simples / complexité Documentation claire Performance exceptionnelle Forte sécurité Zéro configuration (enfin presque)
  • 15.
    15 C’est ICI quevous allez coder ! CodeIgniter est basé sur le concept de Programmation Orientée Objet (POO) et sur l’architecture MVC. Il offre : Des classes références : ‣ « config » pour récupérer toute votre configuration. Vous aller pouvoir personnaliser votre Framework ; ‣ « database » pour les bases de données ; ‣ « form_validation » pour simplifier la vérification de vos formulaires ; ‣ «  session  » pour les sessions. CodeIgniter n’utilise pas les sessions natives mais son propre système ; ‣ … 1. Pourquoi CodeIgnter ?
  • 16.
    16 C’est ICI quevous allez coder ! CodeIgniter est basé sur le concept de Programmation Orientée Objet (POO) et sur l’architecture MVC. Il offre : Des helpers ‣ « URL Helpers » vous aideront dans la création de vos lien ; ‣ « Form Helpers » vous aideront à la création de vos formulaires ; ‣ «  Text Helpers  » vous permettrons de manipuler des chaines de caractères. ‣ « File Helpers » vous aiderons à manipuler les fichiers ; ‣ … Les Helpers (ou fonction d’aide), et comme leur nom l’indique, son là pour vous aider. Chaque fichier d’aide représente un ensemble de fonctions dans une catégorie particulière. Les Helpers références, se trouvent par défaut dans le Framework 1. Pourquoi CodeIgnter ?
  • 17.
    2. Comment ça marche 17Diagramme d'application Le graphique suivant illustre la manière dont les données circulent dans le système: ‣ Le fichier index.php sert de contrôleur frontal, initialisant les ressources de base nécessaires à l'exécution de CodeIgniter. ‣ Le routeur examine la requête HTTP pour déterminer son utilisation. ‣ Si un fichier cache existe, il est envoyé directement au navigateur, ignorant l'exécution normale du système.
  • 18.
    2. Comment ça marche? 18 Diagramme d'application Le graphique suivant illustre la manière dont les données circulent dans le système: ‣ Sécurité. Avant le chargement du contrôleur d'application, la demande HTTP et les données soumises par l'utilisateur sont filtrées pour la sécurité. ‣ Le contrôleur charge le modèle, les bibliothèques principales, les assistants et toutes les autres ressources nécessaires au traitement de la demande spécifique. ‣ La vue finalisée est rendue puis envoyée au navigateur Web pour être vue. Si la mise en cache est activée, la vue est d'abord mise en cache afin d'être servie lors des demandes suivantes.
  • 19.
    Contenu du dossiercodeigniter : ▫ application/ c'est le dossier dans lequel nous allons travailler ▫ system/ c'est le dossier qui contient le cœur de CodeIgniter. Vous ne devez jamais modifier son contenu ! ▫ user_guide/ la même doc que celle disponible en ligne. Vous pouvez supprimer ce dossier. ▫ composer.json WTF mdr, composer, le gestion de dépendance PHP ça vous parle ? ▫ le fichier index.php c'est le fichier que l'internaute appellera lorsqu'il se connectera à votre site. Il est très important, à ne pas toucher. 19 3. Structure / Arborescence
  • 20.
    Contenu du dossierapplication : ▫ config/ ce dossier contient la configuration de notre site ▫ controllers/ la liste de nos contrôleurs (c'est la prochaine étape) ▫ helpers/ la liste de nos helpers (nous en parlerons plus tard). ▫ models/ la liste de nos modèles (nous en parlerons plus tard). ▫ views/ la liste de nos vues (nous en parlerons plus tard) 20 3. Structure / Arborescence Le dossier application est celui dans lequel nous allons passer tout notre temps. Comme vous pouvez le voir, il a de nombreux sous-dossiers. Voici ceux qui vont nous intéresser. Ignorez les autres dossiers pour le moment, nous y reviendrons plus tard.
  • 21.
  • 22.
    Trêve de bavardage! Ouvrez vos éditeurs à la page 2
  • 23.
    Les contrôleurs représententle cœur de votre application. Ils vont faire le lien entre les données et l'affichage. Ils seront la "logique" de votre application. 23 3. Les controllers Fonctionnement des contrôleurs Dans le dossier controllers vous trouverez un fichier welcome.php, ouvrez le. Plusieurs choses nous intéresse : <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
  • 24.
    24 3. Les controllers Lesurls avec CodeIgniter Si vous avez bien suivi, vous vous demandez certainement comment ça se fait que lorsque vous allez sur votre site c'est le contrôleur Welcome qui est chargé. En fait, CodeIgniter utilise un système de routes très simple. Le contrôleur est directement renseigné dans l'url. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); // Par convention, le nom de la classe a une majuscule class Utilisateur extends CI_Controller { // La méthode profil qui sera appelé a un paramètre "$id". Dans notre exemple, il vaudra 1. public function profil($id) { } }
  • 25.
    25 3. Les controllers Controllerpar défaut Si nous ne mettons aucun argument, nous appelons directement le domaine. nous pouvons définir quel contrôleur sera appelé si aucun n'est spécifié. Ouvrez le fichier application/config/routes.php et regardez cette ligne : $route['default_controller'] = "welcome"; Supprimer le index.php des urls CodeIgniter Vous pouvez supprimer si cela vous chante le index.php de vos lien codeigniter. Pour le faire créer un fichier .htaccess et ajouter cette portion de code : RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] Ouvez application/config/config.php puis passez la variable $config[‘index_page'] à vide $config[‘index_page'] = "index.php"; > $config[‘index_page'] = « ";
  • 26.
    26 3. Les vues Sivous vous rendez dans le dossier views dans application, vous verrez la vue welcome_message, ouvrez la. Vous trouvez une page HTML toute simple. C'est celle-ci qui est affichée à l'écran lorsque vous affichez le site. Comment ça marche ? Comprendre la notion de vue Une vue est tout simplement un fichier .php qui va contenir le html de votre page. L'idée est d'appeler la vue depuis le contrôleur afin de lui envoyer des données préalablement récupérées. La vue se chargera d'intégrer ces données dans le format HTML classique. Comme en PHP, il est possible d'imbriquer (include) les vues entre elles. L'idée étant bien sûr d'éviter au maximum la redondance. Charger une vue Comme nous l’avons vu précedement, l’affichage d’une vue est assez simple, une seule ligne suffit dans le contrôleur. $this->load->view('welcome_message');
  • 27.
    27 3. Les vues Envoyerles données à la vue La fonction view() prend d'autres paramètres. Comme nous l'avons vu, le premier est le nom de la vue. Le deuxième est un tableau qui va contenir les données que nous allons envoyer à la vue. Reprenons notre exemple de tout à l’heure Nous voyons que nous passons un tableau associatif à la vue. Ce faisant, il est maintenant très simple de récupérer les données dans la vue (fichier profil.php) en faisant : class Utilisateur extends CI_Controller { public function profil() { $data = array('nom' => 'Robert'); $this->load->view('utilisateur/profil', $data); } } echo $nom; // ceci affichera "Robert" Et oui ! La clé du tableau devient le nom de la variable. C'est aussi simple que ça.
  • 28.
    28 3. Les vues Stockerla vue dans une variable La fonction view() prend également un troisième paramètre très intéressant. Si vous le mettez à true, la vue ne s'affichera pas directement, elle sera retournée. Cela signifie que vous pourrez stocker le contenu de la vue dans une variable. Tout d'abord, il faut créer une vue template.php à la racine du dossier views et insérez y le code suivant : $html = $this->load->view('utilisateur/profil', $data, true); Créer un système de template avec CodeIgniter Avec tout ceci, nous allons pouvoir créer un système de template. Sur un site Internet, il y a toujours des parties qui sont identiques pour chaque page (header et footer notamment). Nous pouvons facilement créer un système permettant de gérer cela.
  • 29.
    29 3. Les vues <html> <head> <title>Mapage</title> </head> <body> <header>Ceci est le header</header> <div> <!-- La vue s'affichera ici --> <?php echo $page; ?> </div> <footer>Ceci est le footer</footer> </body> </html> Ce sera toujours cette vue que l'on appellera. Lors de cel appel, il nous suffira de lui passer en paramètre le contenu d'une autre vue que l'on aura instanciée dans la variable $page. Le contrôleur ressemblera donc à ceci :
  • 30.
    30 3. Les vues classUtilisateur extends CI_Controller { public function profil() { $data = array('nom' => 'Robert'); // On stocke notre page dans la variable $page $page = $this->load->view('utilisateur/profil', $data, true); // On affiche notre page avec le template $this->load->view('template', array('page' => $page)); } } Bien sûr vous pouvez facilement adapter un tel système à vos besoins et y ajouter quelques fonctionnalités plus robuste.
  • 31.
    Les contrôleurs représententle cœur de votre application. Ils vont faire le lien entre les données et l'affichage. Ils seront la "logique" de votre application. 31 3. Les modèles Fonctionnement des contrôleurs Dans le dossier controllers vous trouverez un fichier welcome.php, ouvrez le. Plusieurs choses nous intéresse : <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
  • 32.
    Wo, wo, wodu calme on y va maintenant 32 Tchai djo, c’est pour quand la pratique ? https://github.com/fkobon/codons-j2code
  • 33.
  • 34.
    CONCLUSION CodeIgniter, est unf ramework facile à apprendre, qui permet de gagner beaucoup de temps et de garantir la sécurité de vos applications web ‣ Un Framework peu s’avéver très utile, ‣ Diversité de Framwork disponible ‣ Bien choisir son f ramework en fonction de ses besoins et du type de projet
  • 35.
    Merci ! Suivez-moi sur@fkobon sinon laissez-moi un petit mail, je me ferai le plaisir de vous répondre francois.kobon@ayiyikoh.org. En passant, mon fkobon.ci et laissez-moi quelques commentaires. Journée du Code 2018 #MaintenantCodons