YII Yes It Is !
1. Qu'est-ce qu'un Framework ensemble de bibliothèques permettant le développement rapide d'applications. Il fournit suffisamment de briques logicielles pour pouvoir produire une application aboutie. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres 2
Un Framework pourquoi faire ? Réduire le temps de développement Intégration de nombreuses fonctionnalités prête à l’emploi et dont les implémentations sont bien rodées Gain de temps sur les questions génériques > mise à profit de ce temps sur des parties plus spécifiques. Un framework est très souvent (pour ne pas dire toujours) le résultat d’un travail commun d’où bien souvent un meilleur débogage, codage -> plus robuste, gain de qualité au niveau du produit fini. Eviter de réinventer la roue et éviter les erreurs de conception (bugs, problèmes de sécurité). 3
Fonctionnalités Modèle MVC « modèle vue controlleur » Très répandu dans le développement d’applications et occupe également une place importante dans le développement web. Permet de distingué la partie présentation du code applicatif Templates (gabarits) Fichier de mise en forme (html) Séparation fond/forme Le développeur peut se décharger de se travail qui sera confié au graphiste Intégration possible de différents gabarits pour créer le gabarit global 4
Cycle de vie d'une requête Un utilisateur fait une requête au script de démarrage web/index.php. Le script de démarrage charge la configuration de l'application et créé une instance d'application pour traiter la requête. L'application résout la route requise avec l'aide du composant d'application requête. L'application créé une instance de contrôleur pour traiter la requête. Le contrôleur créé une instance d'action et effectue les filtres pour l'action. Si un filtre échoue, l'action est annulée. Si tous les filtres sont validés, l'action est exécutée. L'action charge un modèle de données, potentiellement depuis une base de données. L'action génère une vue, lui fournissant le modèle de données. Le résultat généré est renvoyé au composant d'application réponse. Le composant réponse envoie le résultat généré au navigateur de l'utilisateur.
C'est quoi MVC ? 6
Modèle – Vue - Contrôleur - partie qui gère les données du site - rôle : récupérer les informations dans la Bdd, les organiser et les assembler => on y trouve les requêtes SQL Vue : - partie qui gère l'affichage - ne fait aucun calcul - rôle : récupérer les variables pour savoir quoi afficher - essentiellement du code HTML et quelques boucles et conditions PHP très simples Contrôleur : - partie qui gère la logique et prend des « décisions » - intermédiaire entre modèle et vue - rôle : demander au modèle des données, les analyser et les transmettre à la vue
Pourquoi YII en M2 ? Ce framework va nous permettre de créer des fomulaires sans avoir à trop « coder » Facile à prendre en main Beaucoup de documentations Beaucoup d'extensions 8
Début sur Yii Copier le répertoire m2 dans le www de wamp Ouvrer le navigateur sur http://localhost/m2/web et déjà vous devriez avoir une première page yii Ensuite rendez-vous sur http://localhost/m2/web/index.php?r=gii 9
La base de données Nous allons passer à la base de données Créons une table avec quelques informations CREATE TABLE `country` ( `code` CHAR(2) NOT NULL PRIMARY KEY, `name` CHAR(52) NOT NULL, `population` INT(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `country` VALUES ('AU','Australia',24016400); INSERT INTO `country` VALUES ('BR','Brazil',205722000); INSERT INTO `country` VALUES ('CA','Canada',35985751); INSERT INTO `country` VALUES ('CN','China',1375210000); INSERT INTO `country` VALUES ('DE','Germany',81459000); INSERT INTO `country` VALUES ('FR','France',64513242); INSERT INTO `country` VALUES ('GB','United Kingdom',65097000); INSERT INTO `country` VALUES ('IN','India',1285400000); INSERT INTO `country` VALUES ('RU','Russia',146519759); INSERT INTO `country` VALUES ('US','United States',322976000); 10
Générons le modèle Cliquer sur Model Generator Il suffit d'entrer le nom de la table créée précédemment et de donner un nom au modèle par exemple (Test) On clique sur Preview Puis Generate 11
Générons le CRUD CRUD pour Create, Read, Use et Delete 12
Générons le CRUD 13
Testons http://hostname/index.php?r=country%2Findex