Anúncio
Anúncio

Mais conteúdo relacionado

Similar a #J2Code2018 - Mettez du feu à vos applications avec CodeIgniter(20)

Anúncio

Último(20)

#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. “ 2 Êtes-vous prêt.e ? #MaintenantCodons
  3. 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
  4. Le Plan d’attaque 4 Introduction aux Frameworks On code pas un peu ? Pourquoi CodeIgniter ? Conclusion
  5. CodeIgniter (1/4) Introduction aux Frameworks
  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 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
  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. 4. Exemples 10 JavaScript PHP Java Python Deep Learning
  11. CodeIgniter (2/4) Pourquoi CodeIgniter ?
  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 Pourquoi CodeIgnter ? Solutions simples / complexité Documentation claire Performance exceptionnelle Forte sécurité Zéro configuration (enfin presque)
  15. 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. 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 ?
  17. 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.
  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 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
  20. 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.
  21. CodeIgniter (3/4) On code pas un peu ?
  22. Trêve de bavardage ! Ouvrez vos éditeurs à la page 2
  23. 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. 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. 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. 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. 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. 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. 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. 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.
  31. 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'); } }
  32. Wo, wo, wo du calme on y va maintenant 32 Tchai djo, c’est pour quand la pratique ? https://github.com/fkobon/codons-j2code
  33. CodeIgniter (4/4) Conclusion
  34. 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
  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
Anúncio