1 00:00:00,000 --> 00:00:02,150 >> [Séminaire] [Kohana: A Framework PHP Léger] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [C'est CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 Salut tout le monde >>. Mon nom est Brandon. 5 00:00:09,130 --> 00:00:11,000 Je suis un junior ici au collège de faire de l'informatique, et aujourd'hui nous allons parler de 6 00:00:11,000 --> 00:00:14,460 Kohana, qui est un cadre de développement web PHP. 7 00:00:14,460 --> 00:00:17,260 Aujourd'hui va être un séminaire de codage en direct, 8 00:00:17,260 --> 00:00:21,000 donc je suis fondamentalement va passer 5-10 minutes expliquant ce que Kohana est, 9 00:00:21,000 --> 00:00:25,000 et puis je suis littéralement va construire un blog super simple 10 00:00:25,000 --> 00:00:28,570 pour vous ici littéralement à partir de zéro. 11 00:00:28,570 --> 00:00:32,229 Nous allons télécharger le code à partir du site Kohana, 12 00:00:32,229 --> 00:00:35,000 et nous allons commencer à construire un blog, et j'espère que ça va être très instructif, 13 00:00:35,000 --> 00:00:37,000 parce que vous verrez peut-être peut-être je vais faire quelques erreurs, 14 00:00:37,000 --> 00:00:39,000 et vous me verrez récupérer d'eux, 15 00:00:39,000 --> 00:00:42,040 ou vous verrez mon processus de pensée que je construis à travers ce blog, 16 00:00:42,040 --> 00:00:44,000 et en attendant, vous pourrez également vous familiariser avec le cadre lui-même. 17 00:00:44,000 --> 00:00:48,000 J'espère que ça va être un exercice très instructif. 18 00:00:48,000 --> 00:00:51,370 >> Tout d'abord, qu'est-ce qu'un cadre? 19 00:00:51,370 --> 00:00:54,000 Si vous avez pris CS50 jusqu'ici, vous n'avez pas vraiment travaillé avec tout 20 00:00:54,000 --> 00:00:56,000 cadres pour l'instant, et la chose est ce. 21 00:00:56,000 --> 00:01:00,000 Vous avez probablement fait une développement web pset déjà, 22 00:01:00,000 --> 00:01:03,000 et disons que vous continuez à construire des sites Web et de garder les sites de construction. 23 00:01:03,000 --> 00:01:05,000 Vous allez commencer à remarquer un certain nombre de choses. 24 00:01:05,000 --> 00:01:07,000 La première chose que vous remarquerez est que vous êtes probablement faire les mêmes choses 25 00:01:07,000 --> 00:01:09,150 encore et encore tout le temps, 26 00:01:09,150 --> 00:01:13,000 des choses comme le nettoyage de données d'entrée d'utilisateur, 27 00:01:13,000 --> 00:01:17,250 des choses comme l'organisation de vos fichiers d'une certaine manière. 28 00:01:17,250 --> 00:01:19,000 L'autre chose que vous remarquerez aussi probablement que votre code 29 00:01:19,000 --> 00:01:21,000 peut commencer à devenir très, très salissant, 30 00:01:21,000 --> 00:01:24,000 et vous pouvez le laisser en désordre et tout simplement un moment très difficile maintenir, 31 00:01:24,000 --> 00:01:26,000 ou vous pouvez commencer à structurer votre code et de le rendre modulaire 32 00:01:26,000 --> 00:01:28,510 d'une certaine manière à la rendre plus maintenable. 33 00:01:28,510 --> 00:01:31,020 >> C'est là que les frameworks web essentiellement venus po 34 00:01:31,020 --> 00:01:33,680 Ces personnes qui avaient construit un grand nombre de sites, disaient-ils, 35 00:01:33,680 --> 00:01:35,820 «Nous n'avons pas besoin de refaire ce chaque fois que nous construisons un site Web." 36 00:01:35,820 --> 00:01:39,050 «Pourquoi ne faisons-nous pas juste un paquet qui fait toutes ces choses pour vous 37 00:01:39,050 --> 00:01:41,250 chaque fois que vous voulez construire un site web? " 38 00:01:41,250 --> 00:01:43,030 Et de sorte que lorsque vous créez un nouveau site Web, 39 00:01:43,030 --> 00:01:45,880 vous vous concentrez seulement sur ce qu'est exactement ce site particulier est d'environ. 40 00:01:45,880 --> 00:01:48,630 Vous n'avez pas besoin de répéter toutes les différentes configurations 41 00:01:48,630 --> 00:01:53,070 et la séparation des codes et réécriture du code 42 00:01:53,070 --> 00:01:56,180 que vous avez souvent à faire lorsque vous créer des sites web. 43 00:01:56,180 --> 00:01:59,410 L'idée est qu'un cadre vous permet d'écrire un code de niveau supérieur 44 00:01:59,410 --> 00:02:01,030 sans avoir à se soucier des détails de niveau inférieur. 45 00:02:01,030 --> 00:02:03,670 Un détail de niveau inférieur pourrait être quelque chose comme 46 00:02:03,670 --> 00:02:07,250 traitement des données d'entrée de nettoyage par l'utilisateur. 47 00:02:07,250 --> 00:02:09,320 C'est quelque chose que vous ne devriez pas vraiment besoin de s'inquiéter. 48 00:02:09,320 --> 00:02:12,370 Vous devez vous concentrer sur ce que votre allocation web est en fait sur. 49 00:02:12,370 --> 00:02:14,790 Il élimine beaucoup de code réutilisable. 50 00:02:14,790 --> 00:02:16,640 C'est une architecture pour votre projet. 51 00:02:16,640 --> 00:02:18,680 >> Le plus populaire serait Modèle-Vue-Contrôleur, 52 00:02:18,680 --> 00:02:20,380 dont je vais parler dans un instant. 53 00:02:20,380 --> 00:02:22,790 Et un grand nombre de fois ces cadres incarnent un ensemble de procédures, 54 00:02:22,790 --> 00:02:25,750 règles, et les meilleures pratiques pour vous d'utiliser 55 00:02:25,750 --> 00:02:28,190 de sorte que lorsque vous adoptez le framework web 56 00:02:28,190 --> 00:02:30,050 vous devez écrire votre code d'une certaine manière, 57 00:02:30,050 --> 00:02:32,430 et il est généralement convenu d'un ensemble de principes 58 00:02:32,430 --> 00:02:34,290 par la communauté qui est généralement accepté d'être 59 00:02:34,290 --> 00:02:36,230 une bonne façon d'écrire du code. 60 00:02:36,230 --> 00:02:38,260 Il rend votre code plus maintenable, plus utilisable, 61 00:02:38,260 --> 00:02:40,030 ainsi de suite et ainsi de suite. 62 00:02:40,030 --> 00:02:42,740 Et enfin, la chose que je tiens à souligner à propos des cadres 63 00:02:42,740 --> 00:02:45,980 contre bibliothèques est cette idée à propos de l'inversion de contrôle, et la chose est la suivante. 64 00:02:45,980 --> 00:02:48,430 La différence entre une bibliothèque et un cadre qui est doté d'une bibliothèque 65 00:02:48,430 --> 00:02:51,990 vous êtes toujours en train d'écrire le programme principal, 66 00:02:51,990 --> 00:02:54,460 et vous êtes sorte d'invoquer la bibliothèque 67 00:02:54,460 --> 00:02:56,810 et demandant à la bibliothèque pour faire quelque chose pour vous. 68 00:02:56,810 --> 00:02:58,180 La différence entre une bibliothèque et un cadre 69 00:02:58,180 --> 00:03:01,620 est que le cadre commence par la commande, 70 00:03:01,620 --> 00:03:03,260 et il appelle votre code, 71 00:03:03,260 --> 00:03:06,190 de sorte que vous pouvez penser que c'est - c'est pourquoi on appelle ça un cadre - 72 00:03:06,190 --> 00:03:09,700 le cadre fournit ce cadre et la structure de votre code, 73 00:03:09,700 --> 00:03:11,320 et vous remplissez les trous, 74 00:03:11,320 --> 00:03:13,990 et cela deviendra plus apparent dans une seconde 75 00:03:13,990 --> 00:03:16,670 quand vous voyez-moi de commencer à écrire du code dans le contexte du cadre. 76 00:03:16,670 --> 00:03:19,130 Vous verrez que je suis combler les lacunes, 77 00:03:19,130 --> 00:03:22,450 et le cadre est une sorte de contrôle de toutes les pièces en mouvement, 78 00:03:22,450 --> 00:03:27,420 et je dois mettre les morceaux dans les bons endroits. 79 00:03:27,420 --> 00:03:29,360 >> Aujourd'hui, nous allons parler de Kohana, 80 00:03:29,360 --> 00:03:31,610 qui est l'un des nombreux cadres de PHP. 81 00:03:31,610 --> 00:03:34,550 Il ya frameworks web, et il y en a dans presque toutes les langues unique, 82 00:03:34,550 --> 00:03:38,330 et je reprends Kohana parce Kohana est sans doute 83 00:03:38,330 --> 00:03:43,250 et généralement reconnu comme le framework PHP plus facile à ramasser. 84 00:03:43,250 --> 00:03:45,940 C'est le plus léger. 85 00:03:45,940 --> 00:03:48,470 Il ya d'autres là-bas qui viennent avec beaucoup, beaucoup plus de fonctionnalités, 86 00:03:48,470 --> 00:03:51,590 mais ils ont tendance à être plus difficile à ramasser. 87 00:03:51,590 --> 00:03:54,920 Et enfin, Kohana utilise l'architecture MVC. 88 00:03:54,920 --> 00:03:57,780 C'est assez léger que nous pouvons littéralement construire un projet 89 00:03:57,780 --> 00:03:59,620 ici juste en face de vos yeux, et vous pouvez très bien 90 00:03:59,620 --> 00:04:02,780 suivre assez facilement. 91 00:04:02,780 --> 00:04:04,420 >> Quelle est l'architecture MVC? 92 00:04:04,420 --> 00:04:06,540 Il est synonyme de Modèle-Vue-Contrôleur, 93 00:04:06,540 --> 00:04:09,560 et peut-être si vous pensez le code que vous avez écrit à ce jour 94 00:04:09,560 --> 00:04:11,280 pour certains de vos psets de développement web 95 00:04:11,280 --> 00:04:14,710 vous pourriez être en mesure de voir, mais lorsque vous commencez à écrire 96 00:04:14,710 --> 00:04:16,500 une application web plus complexe, 97 00:04:16,500 --> 00:04:21,209 la division entre ces trois segments devient de plus en plus évidente. 98 00:04:21,209 --> 00:04:26,740 J'ai présenté le MVC ici sorte de comme une pile, 99 00:04:26,740 --> 00:04:29,920 et souvent, vous entendez les gens parler des piles dans le développement web, 100 00:04:29,920 --> 00:04:33,760 et cela est d'illustrer l'idée que 101 00:04:33,760 --> 00:04:37,510 chaque couche, chaque composant essaie vraiment de communiquer seulement 102 00:04:37,510 --> 00:04:40,750 entre deux autres composants. 103 00:04:40,750 --> 00:04:44,550 Quelqu'un accède à votre site comme un client ou un navigateur. 104 00:04:44,550 --> 00:04:48,870 Ils interagissent avec votre programme à travers le code de la vue. 105 00:04:48,870 --> 00:04:50,500 Le code de la vue interagit avec le contrôleur. 106 00:04:50,500 --> 00:04:52,400 Le dispositif de commande coopère avec le modèle, 107 00:04:52,400 --> 00:04:55,090 et le modèle interagit avec la base de données SQL. 108 00:04:55,090 --> 00:04:59,670 Et il n'y a pas de saut entre les deux si vous écrivez votre code correctement. 109 00:04:59,670 --> 00:05:01,670 >> Qu'est-ce que ces choses font? 110 00:05:01,670 --> 00:05:06,020 Le modèle est essentiellement le morceau de code qui traite vos données. 111 00:05:06,020 --> 00:05:09,100 Tout ce qui traite de votre base de données, avec les objets que vous stockez, 112 00:05:09,100 --> 00:05:11,280 ou la récupération de ces objets dans la base de données, 113 00:05:11,280 --> 00:05:13,450 C'est tout traitées par le modèle. 114 00:05:13,450 --> 00:05:15,290 Peut-être que vous avez des objets dans votre base de données. 115 00:05:15,290 --> 00:05:17,700 Nous allons créer un modèle ayant à voir avec les messages, 116 00:05:17,700 --> 00:05:19,760 si un poste peut avoir des attributs à elle. 117 00:05:19,760 --> 00:05:23,900 Vous pouvez avoir des fonctions autour de stocker ces messages ou de récupérer les messages 118 00:05:23,900 --> 00:05:26,270 ou filtrer les messages et ainsi de suite et ainsi de suite, 119 00:05:26,270 --> 00:05:28,880 et c'est tout le code qui est géré par le modèle. 120 00:05:28,880 --> 00:05:31,780 Le contrôleur est en quelque sorte de la logique de l'application, 121 00:05:31,780 --> 00:05:37,910 et beaucoup de choses différentes peut aller dans la logique de l'application. 122 00:05:37,910 --> 00:05:39,790 Si vous parlez d'une API différente, 123 00:05:39,790 --> 00:05:42,310 c'est peut-être où vous faites affaire avec la logique de l'application. 124 00:05:42,310 --> 00:05:47,990 Si vous essayez d'avoir à apporter des données à partir de plusieurs modèles différents 125 00:05:47,990 --> 00:05:51,540 et avoir à les combiner en quelque sorte, qui peuvent souvent être traitées par le contrôleur. 126 00:05:51,540 --> 00:05:53,820 Par exemple, sur Facebook, si vous ami de quelqu'un, 127 00:05:53,820 --> 00:05:58,500 alors peut-être l'acte d'établir cette relation 128 00:05:58,500 --> 00:06:00,490 peut être effectuée par le contrôleur. 129 00:06:00,490 --> 00:06:04,350 >> Et enfin, la vue est le code qui est de générer ce que vous voyez réellement. 130 00:06:04,350 --> 00:06:07,410 Un grand nombre de fois, je pense que dans les psets de CS50 131 00:06:07,410 --> 00:06:10,050 ils n'ont pas vraiment vous encourager les gars de séparer ces 3 choses. 132 00:06:10,050 --> 00:06:12,430 Vous aurez probablement cette grande, longue file où au sommet 133 00:06:12,430 --> 00:06:15,130 vous faites une certaine requête SQL et peut-être faire un peu de traitement 134 00:06:15,130 --> 00:06:17,020 sur les données extraites de la base de données, 135 00:06:17,020 --> 00:06:19,370 et puis vous avez tous votre code HTML au bas. 136 00:06:19,370 --> 00:06:22,840 Et vous pouvez constater que lorsque vous créez de plus en plus de pages 137 00:06:22,840 --> 00:06:25,790 que vous allez avoir une répétition de code, et aussi, 138 00:06:25,790 --> 00:06:29,600 la chose est votre fichier devient vraiment grand et long 139 00:06:29,600 --> 00:06:32,370 et devient difficile à gérer. 140 00:06:32,370 --> 00:06:34,500 La raison pour laquelle MVC est si bien considérée 141 00:06:34,500 --> 00:06:36,120 est pour un certain nombre de raisons. 142 00:06:36,120 --> 00:06:38,110 La première chose est quelque chose qui s'appelle la séparation des préoccupations 143 00:06:38,110 --> 00:06:40,370 qui est l'idée que lorsque vous avez - 144 00:06:40,370 --> 00:06:43,520 idéalement 1 morceau de code devrait faire une chose et le faire très bien, 145 00:06:43,520 --> 00:06:47,210 et vous ne devriez pas combiner des morceaux de code qui font des choses disparates. 146 00:06:47,210 --> 00:06:49,230 Par exemple, afficher le code et le code de modèle, 147 00:06:49,230 --> 00:06:51,040 ils n'ont pas vraiment à être liés. 148 00:06:51,040 --> 00:06:53,290 Ils n'ont pas à être dans les mêmes fichiers, donc quand vous pouvez, séparez-les 149 00:06:53,290 --> 00:06:55,300 il est donc facile à entretenir. 150 00:06:55,300 --> 00:06:57,130 >> L'autre chose est la réutilisation du code. 151 00:06:57,130 --> 00:06:59,770 Vous pouvez vous retrouver à écrire la même requête SQL ou faire 152 00:06:59,770 --> 00:07:03,060 requêtes similaires qui pourraient être prélevée dans une fonction, 153 00:07:03,060 --> 00:07:05,440 et c'est l'idée derrière les modèles et les contrôleurs, 154 00:07:05,440 --> 00:07:09,690 l'avoir dans une fonction distincte que vous pouvez réutiliser dans différents endroits de votre projet. 155 00:07:09,690 --> 00:07:12,420 Et enfin, que c'est lié à la dessiccation votre code, 156 00:07:12,420 --> 00:07:14,700 ou pas de vous répéter, ne vous répétez pas. 157 00:07:14,700 --> 00:07:18,090 Ceci est très compréhensible dans le développement. 158 00:07:18,090 --> 00:07:20,110 Chaque fois que vous pouvez, vous ne voulez pas vous répéter, parce que si vous vous répétez, 159 00:07:20,760 --> 00:07:23,400  il est beaucoup plus coûteux à entretenir. 160 00:07:23,400 --> 00:07:26,040 Si vous voulez changer une chose, vous devez le changer partout, 161 00:07:26,040 --> 00:07:30,230 et qui conduit à des bogues, et c'est horrible. 162 00:07:30,230 --> 00:07:32,010 >> Tous droite. 163 00:07:32,010 --> 00:07:37,270 Des questions jusqu'ici sur Kohana du tout? 164 00:07:37,270 --> 00:07:39,200 Grand. 165 00:07:39,200 --> 00:07:42,300 Maintenant, nous allons plonger dans la session de codage en direct, 166 00:07:42,300 --> 00:07:48,050 et j'espère que tout va bien. 167 00:07:57,200 --> 00:08:00,050 Je vais construire essentiellement ce site 168 00:08:00,050 --> 00:08:03,910 sur un de mes serveurs distants, et de cette façon vous les gars peuvent également 169 00:08:03,910 --> 00:08:06,310 voir le site et accéder au site Web, 170 00:08:06,310 --> 00:08:10,990 et aussi l'environnement est mieux configuré que ma machine distante, 171 00:08:10,990 --> 00:08:14,580 parce qu'il est sous Linux à la place de OS X. 172 00:08:14,580 --> 00:08:16,260 Nous littéralement va commencer. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Je vais télécharger le code du site. 175 00:08:21,350 --> 00:08:24,610 Je vais copier l'adresse du lien, 176 00:08:24,610 --> 00:08:29,770 aller à mon serveur, télécharger, 177 00:08:29,770 --> 00:08:33,000 et je vais extraire. 178 00:08:38,330 --> 00:08:45,710 >> [Étudiants] Quel est le plus grand, vous pouvez rendre le texte? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Est-ce mieux? 180 00:08:47,330 --> 00:08:50,070 [Étudiants] Est-ce faisable? >> [Brandon Liu] Oui, c'est très bien. 181 00:08:50,070 --> 00:08:54,500 J'ai téléchargé un fichier ZIP décompressé et que dans un répertoire nommé Kohana, 182 00:08:54,500 --> 00:08:58,820 et nous allons renommer cette CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 et allons po 184 00:09:01,140 --> 00:09:03,610 Impressionnant. 185 00:09:03,610 --> 00:09:06,870 Ici vous voyez un tas de fichiers différents. 186 00:09:06,870 --> 00:09:10,140 La plupart d'entre vous peut ignorer - We ne va parcourir chaque fichier unique qui est ici 187 00:09:10,140 --> 00:09:13,130 en raison de contraintes de temps, 188 00:09:13,130 --> 00:09:16,310 mais généralement lorsque vous installez Kohana, la première chose que vous faites 189 00:09:16,310 --> 00:09:23,210 est que vous allez dans le répertoire, 190 00:09:23,210 --> 00:09:26,050 et vous faites essentiellement des tests d'environnement et autres joyeusetés 191 00:09:26,050 --> 00:09:28,640 pour s'assurer que l'environnement est correctement configuré pour exécuter Kohana 192 00:09:28,640 --> 00:09:31,450 et assurez-vous que tout va bien. 193 00:09:31,450 --> 00:09:35,510 Vous pouvez voir la plupart des choses passées, mais généralement, vous exécutez toujours dans ce 1 problème 194 00:09:35,510 --> 00:09:38,180 où elle se plaint que certains répertoire n'est pas accessible en écriture, 195 00:09:38,180 --> 00:09:40,410 et c'est à cause de certaines autorisations. 196 00:09:40,410 --> 00:09:43,080 Je ne sais pas combien vous les gars ont appris sur les autorisations de fichiers dans CS50, 197 00:09:43,080 --> 00:09:47,920 mais si vous faites le développement web, vous allez courir dans cette question beaucoup. 198 00:09:47,920 --> 00:09:58,340 Je vais faire en écriture 199 00:09:58,340 --> 00:10:03,390 et je pense que je dois aussi - là nous allons. 200 00:10:03,390 --> 00:10:07,040 >> Bon, alors maintenant vous pouvez voir tout ce passé, 201 00:10:07,040 --> 00:10:10,000 et maintenant il vous dira de renommer le fichier install.php. 202 00:10:10,000 --> 00:10:15,630 Je vais passer le fichier install.php à installed.php, 203 00:10:15,630 --> 00:10:19,610 et maintenant, si je vous rafraîchir, 204 00:10:19,610 --> 00:10:22,810 il me donne une erreur, et c'est là que le débogage entre en jeu. 205 00:10:22,810 --> 00:10:25,610 C'est là que vous pouvez voir ce qui va se passer réellement. 206 00:10:25,610 --> 00:10:28,460 La chose est, par défaut, Kohana suppose que 207 00:10:28,460 --> 00:10:31,480 votre projet est à la racine de votre domaine, 208 00:10:31,480 --> 00:10:35,920 il est donc attendu que vous soyez à demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Nous devons lui dire que c'est en fait dans un sous-dossier. 210 00:10:37,540 --> 00:10:39,820 C'est dans un sous-dossier appelé CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 La chose est, il est mal interprété CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 comme quelque chose d'autre, que je vais vous expliquer en une seconde. 213 00:10:45,680 --> 00:10:49,910 Mais je dois vous dire que c'est quelque chose qui est à prévoir. 214 00:10:49,910 --> 00:10:53,700 Ce que nous allons faire, c'est que nous allons aller dans ce dossier appelé bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 qui est le dossier de configuration où beaucoup de choses différentes sont mis en place. 216 00:10:59,260 --> 00:11:01,570 J'ouvre cela. 217 00:11:01,570 --> 00:11:09,790 Alors peut-être l'une des premières choses que je vais faire est de changer le fuseau horaire. 218 00:11:09,790 --> 00:11:13,910 >> Et puis nous allons voir. 219 00:11:13,910 --> 00:11:15,180 Aha! Juste ici. 220 00:11:15,180 --> 00:11:18,690 Il ya un tas de différentes énonciations de configuration ici, 221 00:11:18,690 --> 00:11:21,700 mais celui que je suis à la recherche de cette chose appelée URL de base, 222 00:11:21,700 --> 00:11:24,570 et par défaut je comprends la valeur Kohana, 223 00:11:24,570 --> 00:11:29,020 mais je vais changer que pour CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 et je pense que cela devrait régler le problème. 225 00:11:32,880 --> 00:11:34,150 Oui, très bien. 226 00:11:34,150 --> 00:11:39,530 Par défaut, pour voir que ça marche, il dit: «Bonjour tout le monde." 227 00:11:39,530 --> 00:11:42,930 Où cela vient-il? Comment sommes-nous arrivés à Bonjour tout le monde? 228 00:11:42,930 --> 00:11:47,640 Est où exactement le code qui a réellement écrit ça? 229 00:11:47,640 --> 00:11:50,240 Pour comprendre cela, je vais vous présenter ce concept appelé routage. 230 00:11:50,240 --> 00:11:52,590 Quasiment tous les frameworks web ont le concept appelé routage, 231 00:11:52,590 --> 00:11:57,230 qui est le morceau de logiciel qui permettra de cartographier un certain URL 232 00:11:57,230 --> 00:12:01,550 à un certain morceau de code dans votre cadre. 233 00:12:01,550 --> 00:12:07,510 Par exemple, si vous avez une URL et que vous allez vers une URL comme foo.com / blog / all 234 00:12:07,510 --> 00:12:11,170 alors que le cadre va faire - ou du moins ce Kohana va faire - 235 00:12:11,170 --> 00:12:15,540 est il va trouver une classe appelée blog contrôleur, 236 00:12:15,540 --> 00:12:18,720 et il va courir la fonction nommée l'action tout. 237 00:12:18,720 --> 00:12:20,160 Je sais que je parle de la classe et les fonctions, 238 00:12:20,160 --> 00:12:23,860 et je sais que vous n'avez pas couverte classes et fonctions 239 00:12:23,860 --> 00:12:26,470 en encore CS50, mais pour l'instant, 240 00:12:26,470 --> 00:12:29,800 vous pouvez penser de classes comme un simple groupe de fonctions, 241 00:12:29,800 --> 00:12:32,900 un moyen de regrouper les fonctions ensemble. 242 00:12:32,900 --> 00:12:37,690 C'est vraiment tout ce que vous devez savoir. 243 00:12:37,690 --> 00:12:43,120 >> Maintenant, si nous regardons notre structure de dossiers, 244 00:12:43,120 --> 00:12:47,110 à l'intérieur du dossier de l'application, il est un autre dossier appelé les classes, 245 00:12:47,110 --> 00:12:49,200 et les autres dossiers sont appelés contrôleur et modèle. 246 00:12:49,200 --> 00:12:52,530 Si vous regardez dans le dossier du contrôleur, 247 00:12:52,530 --> 00:12:56,330 nous voyons qu'il ya un fichier appelé Bienvenue, 248 00:12:56,330 --> 00:13:00,370 et vous pouvez voir ici est une classe appelée contrôleur Bienvenue, 249 00:13:00,370 --> 00:13:02,340 et il ya une fonction appelée Index Action, 250 00:13:02,340 --> 00:13:06,360 et ce qu'il fait est qu'il définit le corps de votre réponse à Bonjour tout le monde. 251 00:13:06,360 --> 00:13:08,730 C'est là que le code est écrit. 252 00:13:08,730 --> 00:13:11,610 L'autre question est, bien, je n'ai pas aller à 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Comment suis-je arrivé ici? 255 00:13:16,250 --> 00:13:20,410 Eh bien, c'est tout simplement parce que 256 00:13:20,410 --> 00:13:22,410 ici au fond de notre fichier d'amorçage 257 00:13:22,410 --> 00:13:24,550 où nous installons nos routes 258 00:13:24,550 --> 00:13:26,570 vous pouvez voir qu'ils mettent des valeurs par défaut pour vous. 259 00:13:26,570 --> 00:13:28,990 Le contrôleur par défaut est la bienvenue. L'action par défaut est l'indice. 260 00:13:28,990 --> 00:13:31,600 C'est pourquoi, lorsque nous mettons rien là-dedans, il a automatiquement le contrôleur Bienvenue 261 00:13:31,600 --> 00:13:33,940 et l'action de l'indice. 262 00:13:33,940 --> 00:13:37,460 >> Tout sens jusqu'ici? 263 00:13:37,460 --> 00:13:40,850 Maintenant, vous pouvez faire plus que simplement aller au contrôleur 264 00:13:40,850 --> 00:13:43,670 et une action spécifique. 265 00:13:43,670 --> 00:13:48,480 Vous pouvez également passer des paramètres à la commande. 266 00:13:48,480 --> 00:13:56,390 À titre d'exemple, 267 00:13:56,390 --> 00:14:04,070 Je vais ajouter une autre action de ce contrôleur à vous montrer. 268 00:14:04,070 --> 00:14:09,130 Appelons cette action Echo, car il va vous dire ce que vous lui donnez, 269 00:14:09,130 --> 00:14:17,510 et si je suis fondamentalement va saisir 270 00:14:17,510 --> 00:14:20,960 un paramètre qui va être envoyé par moi pour le programme de routage, 271 00:14:20,960 --> 00:14:24,440 et comme vous pouvez le voir ici, 272 00:14:24,440 --> 00:14:28,440 cette ligne ici, vous pouvez voir que 273 00:14:28,440 --> 00:14:31,270 Cela signifie essentiellement que vous avez contrôleur, et vous avez un /, 274 00:14:31,270 --> 00:14:33,480 et vous avez l'action, et vous avez un autre /, 275 00:14:33,480 --> 00:14:39,140 et que ça va être des paramètres, et parce que nous avons ce nom ID 276 00:14:39,140 --> 00:14:42,450 dans les crochets, ce qui signifie que nous nommer ce paramètre ID. 277 00:14:42,450 --> 00:14:45,490 Plus tard dans mon code de contrôleur si je veux saisir une prise de ce paramètre, 278 00:14:45,490 --> 00:14:51,790 Je peux utiliser le code que j'ai écrit, trouver le paramètre nommé ID. 279 00:14:51,790 --> 00:14:59,290 C'est ce que j'ai fait ici, et je vais revenir et dire, 280 00:14:59,290 --> 00:15:07,090 "Vous avez dit" que. 281 00:15:07,090 --> 00:15:10,760 Et maintenant si je vais à notre site Web, 282 00:15:10,760 --> 00:15:19,550 Je vais à cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 oh, c'est vrai. 284 00:15:21,420 --> 00:15:23,930 Il est une étape j'ai laissé de côté. 285 00:15:23,930 --> 00:15:27,020 Cela fait partie de l'idée de codage direct. 286 00:15:27,020 --> 00:15:36,100 >> Voici une chose. Voyons. 287 00:15:36,100 --> 00:15:38,870 Donc, normalement, par défaut avec un grand nombre de ces applications Web 288 00:15:38,870 --> 00:15:42,820 vous devez inclure cette chose index.php dans votre URL, 289 00:15:42,820 --> 00:15:46,410 parce que l'idée est index.php est en quelque sorte le point d'entrée 290 00:15:46,410 --> 00:15:48,250 de votre application, mais bien sûr, 291 00:15:48,250 --> 00:15:50,110 c'est une sorte de gênant d'avoir. 292 00:15:50,110 --> 00:15:53,790 Vous ne voulez pas avoir index.php apparaissent dans votre URL, 293 00:15:53,790 --> 00:15:56,080 et à peu près tous les framework web de la boîte 294 00:15:56,080 --> 00:15:58,440 a ce problème index.php, 295 00:15:58,440 --> 00:16:03,370 et si vous avez à prendre des mesures pour être en mesure de retirer cela. 296 00:16:03,370 --> 00:16:07,540 Et dans ce cas, 297 00:16:07,540 --> 00:16:11,450 ce que nous allons faire, c'est que nous allons utiliser un fichier nommé. htaccess, 298 00:16:11,450 --> 00:16:13,900 et c'est quelque chose qui est spécifique au serveur Web Apache, 299 00:16:13,900 --> 00:16:16,290 et il peut faire des choses comme la réécriture des URL 300 00:16:16,290 --> 00:16:19,350 et URL de redirection et ainsi de suite et ainsi de suite, 301 00:16:19,350 --> 00:16:24,280 et Kohana est assez gentil pour fournir un fichier htaccess modèle. que nous pouvons utiliser. 302 00:16:24,280 --> 00:16:28,300 >> Comme vous pouvez le voir, il ya un fichier nommé example.htaccess, 303 00:16:28,300 --> 00:16:33,410 et nous allons copier ce fichier. htaccess. 304 00:16:33,410 --> 00:16:36,950 Je vais ouvrir cette et le modifier, 305 00:16:36,950 --> 00:16:40,840 et fondamentalement, il fait un tas de choses différentes. 306 00:16:40,840 --> 00:16:45,320 La touche de ligne vous pouvez regarder, c'est ici. 307 00:16:45,320 --> 00:16:49,840 L'idée est que cela crée une règle qui dit: 308 00:16:49,840 --> 00:16:56,400 «D'accord, ce que vous tapez dans, préfixez index.php à cela." 309 00:16:56,400 --> 00:16:58,710 Vous pouvez voir que. 310 00:16:58,710 --> 00:17:00,370 L'. * Se tient pour rien, correspond tout, 311 00:17:00,370 --> 00:17:03,300 puis la deuxième partie est index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 et $ 0 correspond à tout ce qui a été identifié auparavant. 313 00:17:07,410 --> 00:17:09,500 Cela fait-il sens? 314 00:17:09,500 --> 00:17:12,190 Mais la chose vraiment touche je veux changer est de changer cette base de réécriture, 315 00:17:12,190 --> 00:17:14,300 qui est la base de l'URL. 316 00:17:14,300 --> 00:17:17,780 Il sorte de suppose où vous travaillez. 317 00:17:17,780 --> 00:17:22,560 Je vais ajouter CS50 Kohana pour que, 318 00:17:22,560 --> 00:17:26,530 et de cette façon maintenant, si je supprimer le index.php, 319 00:17:26,530 --> 00:17:32,110 il doit travailler, et je vais ajouter quelques chiffres 320 00:17:32,110 --> 00:17:36,380 pour vous montrer que ce bien a fait un travail. 321 00:17:36,380 --> 00:17:38,130 Ça sonne bien. 322 00:17:38,130 --> 00:17:40,260 >> Vous avez des questions à ce jour? 323 00:17:40,260 --> 00:17:42,300 [Étudiants] Comment at-il savoir faire le 123? 324 00:17:42,300 --> 00:17:44,120 Est-ce un argument? 325 00:17:44,120 --> 00:17:46,560 Exactement. Vous pouvez penser que c'est juste comme un argument. 326 00:17:46,560 --> 00:17:52,410 Mais la chose étrange, cependant, c'est que la façon dont Kohana le fait 327 00:17:52,410 --> 00:17:54,910 est qu'ils ne font pas exactement comme un argument. 328 00:17:54,910 --> 00:17:56,930 Vous devez saisir comme ça. 329 00:17:56,930 --> 00:18:01,030 Vous devez saisir l'objet de requête et demander pour le paramètre qui est nommé ID, 330 00:18:01,030 --> 00:18:03,240 et ce nom ID vient de ce fichier d'amorçage 331 00:18:03,240 --> 00:18:06,990 que je l'ai montré plus haut, et le nom de l'ID dans ces équerres, 332 00:18:06,990 --> 00:18:11,580 et c'est ainsi que vous prenez ces paramètres. 333 00:18:11,580 --> 00:18:14,010 Impressionnant. 334 00:18:14,010 --> 00:18:17,550 D'autres questions? 335 00:18:17,550 --> 00:18:20,500 Comme je le disais, les contrôleurs, ils gèrent la logique d'application, 336 00:18:20,500 --> 00:18:22,980 si c'est une instance où vous pouvez voir that - 337 00:18:22,980 --> 00:18:24,830 c'est très basique, mais c'est toujours la logique d'application, 338 00:18:24,830 --> 00:18:27,980 l'idée de saisir le paramètre et créer une nouvelle chaîne 339 00:18:27,980 --> 00:18:31,920 qui dit, "Vous avez dit que bla», puis cracher que de nouveau à vous. 340 00:18:31,920 --> 00:18:34,030 Et généralement ce que vous faites est de créer différents contrôleurs. 341 00:18:34,030 --> 00:18:36,450 Vous créez des contrôleurs séparés pour les différentes parties de votre site web. 342 00:18:36,450 --> 00:18:38,160 >> Aujourd'hui, nous allons faire un site très simple, 343 00:18:38,160 --> 00:18:40,420 et ça va être un blog très basique. 344 00:18:40,420 --> 00:18:43,780 Nous allons faire une nouvelle commande juste pour les messages dans un blog. 345 00:18:43,780 --> 00:18:47,060 Mais alors, si je devais également ajouter des commentaires à l'article du blog, 346 00:18:47,060 --> 00:18:50,140 alors je voudrais probablement de faire un nouveau contrôleur pour ces commentaires. 347 00:18:50,140 --> 00:18:53,380 Si je voulais ajouter des utilisateurs, je serais probablement ajouter un nouveau contrôleur pour les utilisateurs, 348 00:18:53,380 --> 00:18:57,000 et en général, l'idée est que chaque fois que vous avez un nouveau modèle, 349 00:18:57,000 --> 00:18:59,630 un nouvel objet de données que vous avez affaire, 350 00:18:59,630 --> 00:19:02,970 vous avez un contrôleur unique pour cet objet de données. 351 00:19:02,970 --> 00:19:04,370 Aujourd'hui, nous allons seulement de travailler avec une objet de données, 352 00:19:04,370 --> 00:19:06,250 et que ça va être les messages, 353 00:19:06,250 --> 00:19:08,710 et vous pouvez également penser à des objets de données comme correspondant aux tables. 354 00:19:08,710 --> 00:19:12,160 En général, chaque tableau correspond à 1 type d'objet de données, 355 00:19:12,160 --> 00:19:15,160 si la table de poste aura 1 modèle de poste, 356 00:19:15,160 --> 00:19:18,230 qui aura 1 contrôleur de poste correspondant à celui, 357 00:19:18,230 --> 00:19:22,190 et de même pour les observations, la même pour les utilisateurs, et ainsi de suite et ainsi de suite. 358 00:19:22,190 --> 00:19:24,070 Et c'est une règle générale. 359 00:19:24,070 --> 00:19:27,460 Il va y avoir des cas particuliers où vous pouvez différer de ce que, 360 00:19:27,460 --> 00:19:29,300 mais 90% du temps c'est ce que vous allez faire, 361 00:19:29,300 --> 00:19:32,810 et je vais vous montrer ce que c'est ce que nous allons faire aujourd'hui. 362 00:19:32,810 --> 00:19:35,490 1 concept plus avant de nous plonger de nouveau dans le code, 363 00:19:35,490 --> 00:19:37,710 cette idée de mapping objet relationnel. 364 00:19:37,710 --> 00:19:41,200 >> Les gars, vous avez déjà fait un développement pset web, 365 00:19:41,200 --> 00:19:43,820 et vous avez vu que vous faites une requête SQL, 366 00:19:43,820 --> 00:19:46,510 et tout ce qu'il vous revient sont rangées. 367 00:19:46,510 --> 00:19:50,040 Vous obtenez ces lignes, et vous les indexer par un nom, 368 00:19:50,040 --> 00:19:55,480 le nom de la colonne et la table, 369 00:19:55,480 --> 00:19:57,630 et c'est comme ça que vous travaillez avec elle, 370 00:19:57,630 --> 00:19:59,290 et il peut être un peu encombrant. 371 00:19:59,290 --> 00:20:01,810 Mais en outre, si vous avez des relations au sein de votre base de données, 372 00:20:01,810 --> 00:20:05,280 comme par exemple si j'ai des commentaires et des messages, 373 00:20:05,280 --> 00:20:11,240 alors peut-être que je veux prendre le poste de parent d'un commentaire. 374 00:20:11,240 --> 00:20:14,350 Si j'utilise seulement des lignes dans SQL, alors tout ce que je peux obtenir est l'ID 375 00:20:14,350 --> 00:20:19,310 du poste de parent et pas le poste lui-même. 376 00:20:19,310 --> 00:20:21,680 Mais quand nous sommes codage, ce que nous voulons réellement, c'est de réellement saisir 377 00:20:21,680 --> 00:20:23,550  la mère elle-même poster parfois. 378 00:20:23,550 --> 00:20:25,730 Qu'est-ce mapping objet relationnel fait est 379 00:20:25,730 --> 00:20:29,480 elle reprend les résultats de la requête de base de données 380 00:20:29,480 --> 00:20:32,420 et le met dans des objets pour vous, qui sont beaucoup plus agréable de travailler avec 381 00:20:32,420 --> 00:20:34,770 que les tableaux et les lignes simples. 382 00:20:34,770 --> 00:20:37,550 >> Par exemple, maintenant, quand je n'ai peut-être un commentaire, 383 00:20:37,550 --> 00:20:40,900 et je veux saisir son poste de parent, 384 00:20:40,900 --> 00:20:43,440 et peut-être je ne commente flèche poste, 385 00:20:43,440 --> 00:20:45,230 alors il va vraiment me donner l'objet de poste 386 00:20:45,230 --> 00:20:47,940 correspondant à l'emploi réel de parent, pas seulement une pièce d'identité, 387 00:20:47,940 --> 00:20:52,210 que je autrement à utiliser et faire une autre requête SQL pour récupérer le poste, 388 00:20:52,210 --> 00:20:57,430 qui est encombrant et inutile. 389 00:20:57,430 --> 00:21:01,840 Et d'ailleurs, en associant toutes ces lignes de données dans des objets, 390 00:21:01,840 --> 00:21:03,760 vous pouvez également joindre plusieurs fonctions à des objets, 391 00:21:03,760 --> 00:21:09,700 Ainsi, par exemple, j'ai parlé de la façon dont les classes sont essentiellement des groupes de fonctions. 392 00:21:09,700 --> 00:21:11,620 Vous pouvez penser que c'est comme ça. 393 00:21:11,620 --> 00:21:15,290 Par exemple, j'ai peut-être cet objet de poste, 394 00:21:15,290 --> 00:21:17,830 et peut-être je voudrais avoir une sorte de fonction attachée à elle 395 00:21:17,830 --> 00:21:20,300 qui me dit essentiellement été récemment posté? 396 00:21:20,300 --> 00:21:23,570 At-il été publié dans la dernière semaine, vrai ou faux? 397 00:21:23,570 --> 00:21:27,320 Et c'est une fonction que je peux fixer sur cet objet, 398 00:21:27,320 --> 00:21:31,300 et c'est vraiment pratique d'avoir dans le même endroit, 399 00:21:31,300 --> 00:21:33,820 et il existe une multitude de fonctions différentes que vous pouvez créer 400 00:21:33,820 --> 00:21:37,990 pour ces objets, et c'est vraiment agréable d'être en mesure de le joindre à une classe, 401 00:21:37,990 --> 00:21:41,700 à un objet, alors que si vous venez d'avoir des lignes en provenance de votre base de données, 402 00:21:41,700 --> 00:21:43,790 alors vous ne pouvez pas vraiment attacher aucune fonctionnalité pour cela. 403 00:21:43,790 --> 00:21:47,850 Il est littéralement juste des données. 404 00:21:47,850 --> 00:21:50,550 Vous avez des questions à ce sujet à tous? 405 00:21:50,550 --> 00:21:52,710 ORM sont le développement web très commun, 406 00:21:52,710 --> 00:21:56,330 et il existe un grand nombre de différents types de ORM, 407 00:21:56,330 --> 00:21:58,450 et Kohana a son propre ORM. 408 00:21:58,450 --> 00:22:05,050 C'est très basique, mais vous aurez un avant-goût de ce que cela ressemble. 409 00:22:05,050 --> 00:22:08,780 >> Créons un modèle pour nos messages de blog, 410 00:22:08,780 --> 00:22:12,350 et la première chose que nous devons évidemment faire est de créer une table réelle 411 00:22:12,350 --> 00:22:16,680 dans notre base de données pour stocker nos données effectivement pour ces postes. 412 00:22:16,680 --> 00:22:19,260 La première chose que je vais faire est d'aller à phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Avez-vous les gars utilisé phpMyAdmin avant? 414 00:22:21,410 --> 00:22:23,400 Ok, génial, si vous les gars savent déjà ce que c'est, 415 00:22:23,400 --> 00:22:32,200 et je vais créer une nouvelle table appelée Kohana messages, 416 00:22:32,200 --> 00:22:37,820 et ça va être très simple. 417 00:22:37,820 --> 00:22:40,190 Je vais devoir vous connecter Dans 418 00:23:02,620 --> 00:23:04,640 Tout ce que nous allons faire aujourd'hui est d'avoir un auteur et un corps, 419 00:23:04,640 --> 00:23:11,930 juste garder les choses simples. 420 00:23:11,930 --> 00:23:15,620 Je vais créer cette table, 421 00:23:15,620 --> 00:23:19,620 et maintenant nous avons juste un tableau représentant nos messages 422 00:23:19,620 --> 00:23:23,370 avec 2 champs pour notre auteur et notre corps. 423 00:23:23,370 --> 00:23:26,290 L'autre chose que je vais faire maintenant est 424 00:23:26,290 --> 00:23:29,820 configurer mon application Web afin de savoir comment se connecter à la base de données, 425 00:23:29,820 --> 00:23:31,950 et ce, encore une fois, c'est quelque chose que vous avez à faire avec toutes les applications Web. 426 00:23:31,950 --> 00:23:34,790 Vous devez indiquer le nom d'utilisateur et le mot de passe 427 00:23:34,790 --> 00:23:36,990 et le nom de la base de données et ainsi de suite et ainsi de suite 428 00:23:36,990 --> 00:23:40,000 à comprendre comment effectivement se connecter à votre base de données. 429 00:23:40,000 --> 00:23:58,710 >> Dans Kohana, nous avons quelque chose qui s'appelle un module de base de données, 430 00:23:58,710 --> 00:24:02,690 et dans le dossier de configuration que nous avons ce dossier appelé Base de données, 431 00:24:02,690 --> 00:24:07,330 et comme vous pouvez le voir, il ya un tas de paramètres que vous devez définir ici 432 00:24:07,330 --> 00:24:09,860 pour lui dire ce qui est le nom d'utilisateur et le mot de passe 433 00:24:09,860 --> 00:24:13,110 pour la base de données pour que je puisse s'y connecter. 434 00:24:13,110 --> 00:24:15,010 Et comme je ne veux pas vous les gars pour réellement savoir 435 00:24:15,010 --> 00:24:17,190 le nom d'utilisateur et mot de passe de ma base de données, 436 00:24:17,190 --> 00:24:23,840 J'ai un fichier où je l'ai déjà mis tout cela, et je vais copier et le coller sur. 437 00:24:33,080 --> 00:24:36,870 Impressionnant. 438 00:24:36,870 --> 00:24:39,880 Très bien. Je pense que c'est toute la configuration que je dois faire, 439 00:24:39,880 --> 00:24:41,070 mais nous allons voir. 440 00:24:41,070 --> 00:24:43,720 Nous allons continuer de travailler en elle, et si quelque chose se bloque, 441 00:24:43,720 --> 00:24:47,490 puis nous fixerons. 442 00:24:47,490 --> 00:24:51,830 Maintenant ce que je vais faire, c'est que je vais créer un nouveau contrôleur. 443 00:24:51,830 --> 00:24:53,190 Ou fait, désolé. 444 00:24:53,190 --> 00:24:55,080 Je dois d'abord créer un nouveau modèle. 445 00:24:55,080 --> 00:25:01,620 Je vais créer un nouveau modèle appelé Post.php, 446 00:25:01,620 --> 00:25:12,440 et ce que nous allons faire, c'est que nous allons appeler la classe Model_Post. 447 00:25:12,440 --> 00:25:15,390 Obtenir un peu de coloration syntaxique, 448 00:25:15,390 --> 00:25:19,750 et quand je dis, "s'étend ORM," c'est essentiellement 449 00:25:19,750 --> 00:25:21,210 une programmation plus orientée objet, 450 00:25:21,210 --> 00:25:23,340 qui, malheureusement, vous les gars n'ont pas encore appris à CS50, 451 00:25:23,340 --> 00:25:25,290 mais il est assez facile à ramasser. 452 00:25:25,290 --> 00:25:27,950 Il me donne toutes ces fonctionnalités supplémentaires qui vient dans ce package de ORM, 453 00:25:27,950 --> 00:25:31,120 et si je reçois un tas de fonctions supplémentaires et autres joyeusetés gratuitement, 454 00:25:31,120 --> 00:25:34,810 que vous verrez un peu de dans une seconde. 455 00:25:34,810 --> 00:25:37,670 >> À l'heure actuelle fait tout ce que je dois faire est de créer cette classe. 456 00:25:37,670 --> 00:25:39,160 Je n'ai même pas besoin de faire toute fonction ou autre chose, 457 00:25:39,160 --> 00:25:41,770 mais j'ai créé une classe qui représente la table, 458 00:25:41,770 --> 00:25:44,140 et parce que j'ai étendu cette classe d'ORM, 459 00:25:44,140 --> 00:25:51,080 Je obtenir un tas de choses gratuitement, donc pour l'instant vous n'avez pas de mettre quelque chose de plus haut. 460 00:25:51,080 --> 00:25:53,530 Et maintenant, ce que je vais faire, c'est que je vais créer un nouveau contrôleur, 461 00:25:53,530 --> 00:25:58,480 que je vais nommer blog.php, 462 00:25:58,480 --> 00:26:04,350 et je vais copier sur le contrôleur Bienvenue 463 00:26:04,350 --> 00:26:11,950 donc je n'ai pas à retaper des trucs, 464 00:26:11,950 --> 00:26:20,720 et maintenant je dois renommer. 465 00:26:20,720 --> 00:26:24,710 Maintenant ce que je vais faire pour tester pour s'assurer que tout fonctionne sur, 466 00:26:24,710 --> 00:26:27,820 Je vais prendre le premier post de ma base de données 467 00:26:27,820 --> 00:26:32,680 et imprimer le corps du message sur l'écran. 468 00:26:32,680 --> 00:26:37,920 Pour ce faire, ce que je vais faire en premier, c'est que je vais enregistrer les messages 469 00:26:37,920 --> 00:26:48,770 à une variable si ce que nous allons faire est de - 470 00:26:48,770 --> 00:26:52,090 dans Kohana ce que vous faites est de saisir l'objet de poste 471 00:26:52,090 --> 00:26:55,380 c'est un peu lourd, mais vous avez à faire cette chose appelée ORM :: factory, 472 00:26:55,380 --> 00:26:57,750 puis vous passez le nom du modèle que vous souhaitez, 473 00:26:57,750 --> 00:27:00,490 et il renvoie l'objet ORM qui représente ce modèle. 474 00:27:00,490 --> 00:27:04,860 Et puis, comme je l'ai dit, lorsque nous étendons l'objet ORM, 475 00:27:04,860 --> 00:27:07,320 nous obtenons toutes ces méthodes pour libre, ainsi, par exemple, 476 00:27:07,320 --> 00:27:09,200 nous obtenons cette nouvelle fonction appelée "trouver tous» 477 00:27:09,200 --> 00:27:12,160 qui renvoie automatiquement chaque poste dans la base de données, 478 00:27:12,160 --> 00:27:14,850 ce qui est assez pratique. 479 00:27:14,850 --> 00:27:17,480 >> Et maintenant dans le corps, je vais revenir 480 00:27:17,480 --> 00:27:24,860 le premier poste et retourne son corps. 481 00:27:24,860 --> 00:27:27,930 Et bien sûr, j'ai besoin de créer un poste, 482 00:27:27,930 --> 00:27:31,880 nous allons donc insérer un nouveau poste. 483 00:27:31,880 --> 00:27:37,870 Je dis, "Brandon, mon tout premier post." 484 00:27:37,870 --> 00:27:40,010 Impressionnant. 485 00:27:40,010 --> 00:27:45,910 Et maintenant, nous allons passer aux blogs 486 00:27:45,910 --> 00:27:50,960 et si tout fonctionne bien - oh, c'est encore autre chose d'autorisation de fichier muet. 487 00:27:50,960 --> 00:27:56,090 Tenir sur 1 seconde. C'est une sorte de absurde. 488 00:28:06,700 --> 00:28:08,490 Nous y voilà. Très bien. 489 00:28:08,490 --> 00:28:10,040 J'ai corrigé ce problème d'autorisation. 490 00:28:10,040 --> 00:28:12,040 Il essayait de créer des fichiers et un log, 491 00:28:12,040 --> 00:28:15,400 et les autorisations, encore une fois, ne sont pas correctement réglés, donc je l'ai fait 492 00:28:15,400 --> 00:28:18,320 de sorte que ces fichiers étaient inscriptible et exécutable 493 00:28:18,320 --> 00:28:21,090 il pourrait effectivement vous connecter à des choses. 494 00:28:21,090 --> 00:28:24,220 Maintenant, il me donne une autre exception dicton, "ORM classe pas trouvé," 495 00:28:24,220 --> 00:28:26,960 et c'est parce que j'ai oublié une autre étape. 496 00:28:26,960 --> 00:28:37,010 C'est dommage. 497 00:28:37,010 --> 00:28:40,270 Dans le fichier de dossiers d'amorçage, il ya ces modules ici, 498 00:28:40,270 --> 00:28:42,480 que vous pouvez choisir d'activer ou désactiver. 499 00:28:42,480 --> 00:28:44,340 Il s'agit d'un groupe de différentes fonctionnalités que vous pouvez choisir d'utiliser 500 00:28:44,340 --> 00:28:46,180 dans Kohana, qui est une sorte de gentil. 501 00:28:46,180 --> 00:28:49,090 >> Par exemple, ils ont un module d'authentification 502 00:28:49,090 --> 00:28:51,170 que vous pouvez utiliser pour authentifier les utilisateurs. 503 00:28:51,170 --> 00:28:53,390 Ils ont un module de mise en cache si vous souhaitez mettre en œuvre 504 00:28:53,390 --> 00:28:57,870 une sorte de mise en cache arrière fin de rendre le travail de l'application plus rapide et ainsi de suite. 505 00:28:57,870 --> 00:29:02,140 Nous devons permettre à la base de données et le module ORM, 506 00:29:02,140 --> 00:29:04,280 parce que, comme je l'ai dit, nous utilisons la base de données, de toute évidence, 507 00:29:04,280 --> 00:29:08,200 et nous avons aussi besoin d'activer le module ORM, 508 00:29:08,200 --> 00:29:12,220 parce que nous aimerions avoir les fonctionnalités supplémentaires, ce qui est agréable à avoir. 509 00:29:12,220 --> 00:29:14,240 Tout ce que j'ai à faire est de décommenter ces deux lignes, 510 00:29:14,240 --> 00:29:18,760 et maintenant, si je vous rafraîchir, il m'a donné une autre erreur. 511 00:29:18,760 --> 00:29:22,100 Il dit, "Classe Model_Post pas été trouvé." 512 00:29:22,100 --> 00:29:30,210 Maintenant, c'est un bon problème à avoir. 513 00:29:30,210 --> 00:29:37,660 Voyons. 514 00:29:37,660 --> 00:29:42,200 Rendre public. 515 00:29:42,200 --> 00:29:46,450 N ° Attendez. 516 00:30:11,610 --> 00:30:13,160 Oh, ma chérie. 517 00:30:13,160 --> 00:30:18,590 Je ne sais pas pourquoi il n'est pas en mesure de trouver qui. 518 00:30:18,590 --> 00:30:21,030 C'est vraiment étrange. 519 00:30:21,030 --> 00:30:23,820 J'ai cette classe ici. 520 00:30:23,820 --> 00:30:28,650 Je suppose que je pourrais avoir à - oh. 521 00:30:28,650 --> 00:30:32,010 Je suis tellement stupide. J'ai oublié d'ajouter une balise PHP. 522 00:30:32,010 --> 00:30:34,670 C'est pourquoi. 523 00:30:34,670 --> 00:30:41,260 Maintenant, je dois annuler que 1 changement que je vient de faire. 524 00:30:41,260 --> 00:30:44,270 >> Okay. Nous y voilà. 525 00:30:44,270 --> 00:30:47,500 C'était vraiment stupide. Je n'ai pas eu une balise PHP d'ouverture. 526 00:30:47,500 --> 00:30:49,900 Mais comme vous pouvez le voir, maintenant il fonctionne correctement, non? 527 00:30:49,900 --> 00:30:51,240 Nous avons 1 poste. 528 00:30:51,240 --> 00:30:54,730 Nous avons pris le premier poste, et maintenant nous avons imprimé son corps. 529 00:30:54,730 --> 00:30:58,010 Grand. Fantastique. 530 00:30:58,010 --> 00:31:01,470 Vous avez des questions à ce jour? 531 00:31:01,470 --> 00:31:04,100 Nan? Vous avez des questions? 532 00:31:04,100 --> 00:31:08,340 D'accord, nous venons de créer le modèle de poste, très basique, 533 00:31:08,340 --> 00:31:10,930 et nous allons ajouter quelques fonctions plus tard. 534 00:31:10,930 --> 00:31:13,600 Nous pouvons ajouter des validations et filtrage. 535 00:31:13,600 --> 00:31:15,650 Validations sont l'une des choses 536 00:31:15,650 --> 00:31:18,150 que les cadres de résoudre pour vous vraiment, vraiment bien, 537 00:31:18,150 --> 00:31:21,310 et je ne pense pas que vous avez eu à faire pour votre CS50 pset, 538 00:31:21,310 --> 00:31:24,000 mais si vous faites du développement web pour votre projet final, 539 00:31:24,000 --> 00:31:26,280 vous allez probablement vouloir faire une sorte de validation, 540 00:31:26,280 --> 00:31:28,290 comme ne pas avoir les noms d'utilisateur vierges, 541 00:31:28,290 --> 00:31:31,950 peut-être avoir un mot de passe avec au moins une longueur, des choses comme ça. 542 00:31:31,950 --> 00:31:34,750 Et c'est vraiment lourd à mettre en œuvre ces choses par nous-mêmes, 543 00:31:34,750 --> 00:31:37,390 et à peu près tous les framework web unique fait pour vous 544 00:31:37,390 --> 00:31:41,140 et vous permet de faire d'une manière très propre. 545 00:31:41,140 --> 00:31:44,340 Et le modèle est que vous exprimez généralement ces règles de validation, 546 00:31:44,340 --> 00:31:48,790 car il est de valider si un modèle est valide ou non. 547 00:31:48,790 --> 00:31:51,350 >> Mais pour l'instant, nous allons mettre cela à plus tard, 548 00:31:51,350 --> 00:31:53,520 et pour l'instant nous allons travailler sur une autre partie, 549 00:31:53,520 --> 00:31:55,400 et nous allons essayer de faire un nouveau point de vue 550 00:31:55,400 --> 00:31:59,580 qui répertorie tous les postes. 551 00:31:59,580 --> 00:32:02,490 Les étapes de la création d'une nouvelle action pour la liste de tous les postes 552 00:32:02,490 --> 00:32:04,810 est de saisir une liste de tous les postes 553 00:32:04,810 --> 00:32:11,990 puis de rendre la liste de tous les messages à travers une vue. 554 00:32:11,990 --> 00:32:16,420 Ici, heureusement assez, nous avons déjà attrapé tous les messages 555 00:32:16,420 --> 00:32:20,310 en utilisant cette première ligne, la trouver toutes les fonctions, 556 00:32:20,310 --> 00:32:22,520 et maintenant ce que nous allons faire est si loin 557 00:32:22,520 --> 00:32:25,350 J'ai été directement mise le corps de la réponse 558 00:32:25,350 --> 00:32:29,090 en transmettant la chaîne, mais maintenant je veux utiliser une vue, 559 00:32:29,090 --> 00:32:31,870 et la différence entre une vue et juste faire ce 560 00:32:31,870 --> 00:32:35,330 C'est avec une vue que je peux avoir une belle grosse modèle, HTML, 561 00:32:35,330 --> 00:32:37,710 et ce que je peux faire est de le transmettre certaines variables 562 00:32:37,710 --> 00:32:42,200 puis ont la vue remplir automatiquement son modèle 563 00:32:42,200 --> 00:32:44,690 utilisant ces variables. 564 00:32:44,690 --> 00:32:50,780 Qu'est-ce que je vais faire, c'est que je vais créer un nouveau point de vue, 565 00:32:50,780 --> 00:32:55,940 et je vais nommer le point de vue quelque chose comme "blog / index" 566 00:32:55,940 --> 00:33:08,480 et je vais lier essentiellement ce - oh, ce que j'écris? 567 00:33:08,480 --> 00:33:12,910 Mon cerveau est ailleurs. 568 00:33:12,910 --> 00:33:16,600 Je vais lier les messages variables à la vue, 569 00:33:16,600 --> 00:33:19,950 si cette façon le point de vue a accès à cette variable de poste. 570 00:33:19,950 --> 00:33:26,140 >> Et maintenant j'ai besoin de créer ce point de vue, 571 00:33:26,140 --> 00:33:28,500 Nous avons donc ici ce dossier "Vues" 572 00:33:28,500 --> 00:33:32,150 et d'abord, je vais créer un nouveau dossier en vertu de cette appelé "Blog". 573 00:33:32,150 --> 00:33:35,810 C'est gentil. De cette façon, nous pouvons avoir une belle hiérarchie de nos vues. 574 00:33:35,810 --> 00:33:43,910 Et puis je vais créer un autre fichier là appelé "index.php". 575 00:33:43,910 --> 00:33:45,780 Impressionnant. 576 00:33:45,780 --> 00:33:52,930 En fait, nous allons avoir les deux ici. 577 00:33:52,930 --> 00:33:56,760 Création d'un fichier de vue est probablement la partie la plus simple de tout cela, 578 00:33:56,760 --> 00:33:59,090 et ce sont probablement des choses que vous connaissez déjà. 579 00:33:59,090 --> 00:34:01,240 Nous allons faire quelque chose de vraiment simple, 580 00:34:01,240 --> 00:34:05,360 commencer à dire: «Ma liste de blog." 581 00:34:05,360 --> 00:34:14,860 Ensuite, nous pouvons passer, 582 00:34:14,860 --> 00:34:17,920 et nous pouvons parcourir le tableau des messages, 583 00:34:17,920 --> 00:34:21,760 saisir chaque poste et dire quelque chose comme - 584 00:34:21,760 --> 00:34:25,290 peut-être ajouter une ligne 585 00:34:25,290 --> 00:34:42,460 puis imprimer l'auteur et le corps. 586 00:34:42,460 --> 00:34:44,480 Qui font sens si loin? 587 00:34:44,480 --> 00:34:50,870 Et nous allons voir si cela fonctionne. 588 00:34:50,870 --> 00:34:53,489 Rien ne s'est passé. 589 00:34:53,489 --> 00:34:55,090 Je me demande pourquoi. 590 00:34:55,090 --> 00:34:58,760 Oh, j'ai raté une étape. Très stupide de ma part. 591 00:34:58,760 --> 00:35:01,640 J'ai créé un point de vue, mais je n'ai pas mis la vue comme la réponse, 592 00:35:01,640 --> 00:35:03,190 de sorte que vous avez à faire une chose. 593 00:35:03,190 --> 00:35:12,610 Vous avez à faire "ce corps de la réponse" et le mettre à la vue. 594 00:35:12,610 --> 00:35:14,760 Nous y voilà. 595 00:35:14,760 --> 00:35:17,200 Nous avons notre position, et nous avons un poste, 596 00:35:17,200 --> 00:35:20,500 et juste pour le plaisir, nous allons insérer un autre poste 597 00:35:20,500 --> 00:35:23,390 afin que nous puissions voir une liste. 598 00:35:31,800 --> 00:35:36,650 Et insérer ces deux postes, 599 00:35:36,650 --> 00:35:39,500 et maintenant si je rafraîchir la page, 600 00:35:39,500 --> 00:35:42,060 nous voyons tous ces messages ici. 601 00:35:42,060 --> 00:35:44,250 >> Est-ce que donner un sens à ce jour? 602 00:35:44,250 --> 00:35:46,400 Ouais, une question? Oh, d'accord. 603 00:35:46,400 --> 00:35:51,440 Comme vous pouvez le voir, nous avons été en mesure de séparer tous ces codes sur 604 00:35:51,440 --> 00:35:53,920 en différentes sections, et vous pouvez voir que c'est plus clair avec le code de la vue. 605 00:35:53,920 --> 00:35:57,810 Ce fichier ici qui représente la vue, 606 00:35:57,810 --> 00:36:01,220 il ne se soucie que représentant des données, l'affichage des données. 607 00:36:01,220 --> 00:36:04,310 Il se passa quelque sorte de données, et tout ce qu'il fait est juste vous le montrer. 608 00:36:04,310 --> 00:36:07,660 Dans tous les autres parties de votre code, vous n'aurez pas à vous soucier de tout cela, 609 00:36:07,660 --> 00:36:10,480 et de même, le code de votre vue n'a pas à se soucier rien 610 00:36:10,480 --> 00:36:13,390 la façon d'accéder à la base de données et ainsi de suite et ainsi de suite, 611 00:36:13,390 --> 00:36:19,950 qui est vraiment bon et rend votre code beaucoup plus maintenable. 612 00:36:19,950 --> 00:36:23,390 Comme je le disais, points de vue, ils sont dynamiques en ce que 613 00:36:23,390 --> 00:36:27,080 c'est 1 fichier, mais il serait de générer des vues différentes 614 00:36:27,080 --> 00:36:29,940 sur la base des variables que vous passez en fait, 615 00:36:29,940 --> 00:36:32,370 et en outre, il ya beaucoup de différentes fonctions d'aide 616 00:36:32,370 --> 00:36:34,230 que vous pouvez utiliser pour vous aider à écrire votre code plus rapide, 617 00:36:34,230 --> 00:36:36,320 que je vais vous montrer dans un instant. 618 00:36:36,320 --> 00:36:38,050 Ouais. 619 00:36:38,050 --> 00:36:42,490 >> [Étudiants] Donc $ 0 est un contrôleur, non? 620 00:36:42,490 --> 00:36:44,000 Ce deuxième chose. 621 00:36:44,000 --> 00:36:46,090 La question est de 0 $ un contrôleur? 622 00:36:46,090 --> 00:36:48,610 $ 0 est une variable que j'ai créé ici. 623 00:36:48,610 --> 00:36:51,320 J'ai créé une vue à la première. J'ai assigné à une variable. 624 00:36:51,320 --> 00:36:54,960 Puis je suis passé dans cette fonction, la définir comme le corps de la réponse. 625 00:36:54,960 --> 00:36:57,260 Cela fait-il sens? 626 00:36:57,260 --> 00:37:02,200 [Étudiants] est donc vue :: factory, est vue comme une classe 627 00:37:02,200 --> 00:37:06,610 ou un [inaudible] fonction de l'usine de la bibliothèque? 628 00:37:06,610 --> 00:37:10,640 La question est sur la fonction vue :: factory, 629 00:37:10,640 --> 00:37:14,020 et c'est en substance ce une programmation plus orientée objet essentiel. 630 00:37:14,020 --> 00:37:18,000 Voir est la classe de vue, et il a une méthode appelée «l'usine», 631 00:37:18,000 --> 00:37:24,170 et c'est un moyen de récupérer l'objet qui est nommé "blog / index." 632 00:37:24,170 --> 00:37:27,140 Et c'est un peu plus de choses de la programmation orientée objet 633 00:37:27,140 --> 00:37:33,010 que je ne vais pas aller dans trop ici. 634 00:37:33,010 --> 00:37:36,400 Maintenant, évidemment, nous voulons créer de nouveaux postes, 635 00:37:36,400 --> 00:37:38,790 mais nous ne voulons pas avoir à le faire à travers une base de données, 636 00:37:38,790 --> 00:37:41,280 donc nous allons créer une nouvelle action pour la création d'un nouveau poste, 637 00:37:41,280 --> 00:37:43,050 et il ya beaucoup de choses que nous avons à faire. 638 00:37:43,050 --> 00:37:45,910 >> La première chose que nous allons faire - nous allons aborder ces choses une par une. 639 00:37:45,910 --> 00:37:48,320 La première chose que nous allons faire, c'est que nous avons à créer un formulaire 640 00:37:48,320 --> 00:37:54,460 pour l'insertion d'un nouveau poste, 641 00:37:54,460 --> 00:37:57,360 mais je vais aussi ajouter une nouvelle action à la première, 642 00:37:57,360 --> 00:38:01,050 afin d'ajouter une nouvelle action est tout aussi facile que 643 00:38:01,050 --> 00:38:03,490 l'ajout d'une nouvelle fonction avec votre contrôleur, 644 00:38:03,490 --> 00:38:13,710 et pour l'instant je vais faire quelque chose de très simple, 645 00:38:13,710 --> 00:38:20,850 il suffit de prendre ce point de vue et l'afficher, il suffit de l'afficher pour vous. 646 00:38:20,850 --> 00:38:26,220 Et puis maintenant, je vais créer un nouveau fichier de vue, 647 00:38:26,220 --> 00:38:33,690 et je vais commencer à écrire des trucs. 648 00:38:33,690 --> 00:38:36,540 Ce qui est bien Kohana est qu'ils fournissent un grand nombre de différentes fonctions d'aide 649 00:38:36,540 --> 00:38:38,790 pour que vous écriviez voir code plus facilement, 650 00:38:38,790 --> 00:38:41,970 et une de ces fonctions d'assistance ou de modules d'aide 651 00:38:41,970 --> 00:38:45,860 est autour de formes d'écriture. 652 00:38:45,860 --> 00:38:49,460 Pour écrire les formes, je n'ai pas vraiment d'écrire directement du code HTML moi-même. 653 00:38:49,460 --> 00:38:51,100 Les gars, vous avez écrit des formulaires HTML. 654 00:38:51,100 --> 00:38:54,850 Vous savez comment il peut être vraiment, vraiment pénible et fastidieux à écrire formes. 655 00:38:54,850 --> 00:38:59,970 Ce n'est pas drôle, si heureusement, 656 00:38:59,970 --> 00:39:04,860 nous pouvons fondamentalement écrire un formulaire à l'aide de Kohana 657 00:39:04,860 --> 00:39:11,190 former des fonctions d'aide à le faire pour nous. 658 00:39:11,190 --> 00:39:17,340 Nous allons avoir fondamentalement champs pour chaque chose que nous avons, 659 00:39:17,340 --> 00:39:23,160 si un des auteurs et un autre pour les organismes. 660 00:39:23,160 --> 00:39:27,090 Nous allons avoir une étiquette, et nous allons avoir une entrée. 661 00:39:37,450 --> 00:39:41,360 >> Et puis enfin, nous allons avoir une soumission. 662 00:39:49,350 --> 00:39:52,230 Et comme vous pouvez le voir, c'est beaucoup plus propre à écrire 663 00:39:52,230 --> 00:39:58,150 que tout ce que HTML désordonné, ce qui est plutôt agréable. 664 00:39:58,150 --> 00:40:00,930 Certes, il existe d'autres frameworks web qui ont encore plus propre que celle, 665 00:40:00,930 --> 00:40:04,440 mais au moins c'est mieux que d'écrire le code HTML vous-même. 666 00:40:09,400 --> 00:40:11,130 Impressionnant, si c'est ce que vous voyez. 667 00:40:11,130 --> 00:40:13,530 C'est le genre de désordre, 668 00:40:13,530 --> 00:40:19,720 donc je vais ajouter un saut de ligne, il 669 00:40:19,720 --> 00:40:21,180 à faire que de regarder un peu plus agréable. 670 00:40:21,180 --> 00:40:23,330 Bien sûr, il a toujours l'air vraiment, vraiment mauvais, mais nous sommes juste concentré 671 00:40:23,330 --> 00:40:26,050 sur la fonctionnalité pour le moment et pas sur l'esthétique. 672 00:40:26,050 --> 00:40:28,010 Pas le temps de tout faire. 673 00:40:28,010 --> 00:40:30,600 Et comme vous pouvez le voir, nous avons maintenant une super forme de base, 674 00:40:30,600 --> 00:40:32,080 qui est plutôt agréable. 675 00:40:32,080 --> 00:40:36,730 Ce code que je dirais est plus propre que d'essayer d'écrire un formulaire HTML vous-même, 676 00:40:36,730 --> 00:40:40,290 donc c'est agréable. 677 00:40:40,290 --> 00:40:42,030 Quelle est la prochaine? 678 00:40:42,030 --> 00:40:49,260 Maintenant, nous devons faire des choses avec l'action. 679 00:40:49,260 --> 00:40:51,240 Normalement, lorsque vous écrivez des formulaires HTML, 680 00:40:51,240 --> 00:40:54,070 vous avez à lui dire où il va soumettre le formulaire. 681 00:40:54,070 --> 00:40:56,050 Par défaut dans la plupart des frameworks web, 682 00:40:56,050 --> 00:40:58,200 il soumet à exactement la même URL, si la chose est, 683 00:40:58,200 --> 00:41:01,310 si vous envoyez une demande d'obtention d'/ blog / nouveau, 684 00:41:01,310 --> 00:41:03,240 il devrait vous afficher le formulaire, 685 00:41:03,240 --> 00:41:06,810 mais si vous envoyez une demande de poste à / blog / nouveau avec les données, 686 00:41:06,810 --> 00:41:10,000 il devrait en fait essayer de sauver ce poste 687 00:41:10,000 --> 00:41:13,300 et faire quelque chose avec elle. 688 00:41:20,630 --> 00:41:22,180 >> Ce que nous allons faire est 689 00:41:22,180 --> 00:41:25,320 fondamentalement tout ce que nous avons à faire pour vérifier s'il s'agit d'une demande de poste ou une demande d'obtention 690 00:41:25,320 --> 00:41:29,350 est de vérifier quelles sont les variables de poste que vous pouvez définir. 691 00:41:29,350 --> 00:41:34,560 Et si la variable de poste est fixé, alors nous allons essayer de créer un nouveau poste. 692 00:41:34,560 --> 00:41:38,440 Encore une fois, nous faisons juste cela, 693 00:41:38,440 --> 00:41:41,090 et qui crée un nouveau poste, et nous sommes littéralement aller 694 00:41:41,090 --> 00:41:51,150 définir ses champs de ce genre, 695 00:41:51,150 --> 00:41:55,640 et puis nous allons enregistrer. 696 00:41:55,640 --> 00:41:59,200 Et puis je vais réorienter 697 00:41:59,200 --> 00:42:07,660 à la page d'index afin qu'ils puissent voir notre liste des postes à nouveau. 698 00:42:07,660 --> 00:42:09,620 Essayons. 699 00:42:09,620 --> 00:42:15,160 Je dis, "Brandon" 700 00:42:15,160 --> 00:42:18,140 puis soumettre le poste, et si tout va bien, 701 00:42:18,140 --> 00:42:21,390 comme vous pouvez le voir, il m'a redirigé vers la page d'index, 702 00:42:21,390 --> 00:42:24,140 et si je fais défiler vers le bas, nous avons un poste nouvellement inséré. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Ouais, question. 705 00:42:28,430 --> 00:42:31,760 >> [Étudiants] Que faire si vous aviez entré exactement la même chose 706 00:42:31,760 --> 00:42:33,380 vous avez entré avant? 707 00:42:33,380 --> 00:42:36,950 Est-il vérifier pour s'assurer que vous n'avez pas dupliqué 708 00:42:36,950 --> 00:42:38,810 la même demande? 709 00:42:38,810 --> 00:42:41,660 Soyez défaut, non, car par défaut - 710 00:42:41,660 --> 00:42:46,470 désolé, la question est de savoir si vous entrez dans exactement les mêmes données sous la forme 711 00:42:46,470 --> 00:42:50,180 et soumettre ce, il va vous permettre d'insérer un objet dupliqué, 712 00:42:50,180 --> 00:42:52,550 une double saisie, essentiellement? 713 00:42:52,550 --> 00:42:54,070 En ce moment, oui, il vous permettra de le faire, 714 00:42:54,070 --> 00:42:58,860 parce que dans les bases de données, il est parfaitement valable à avoir des lignes complètement en double, 715 00:42:58,860 --> 00:43:02,260 mais si c'est une préoccupation, alors vous pouvez ajouter des validations, par exemple, 716 00:43:02,260 --> 00:43:06,430 pour s'assurer que si c'est exactement la même chose que ce qui existe déjà, 717 00:43:06,430 --> 00:43:08,720 alors dire que c'est un objet non valide, 718 00:43:08,720 --> 00:43:11,200 et puis vous pouvez même spécifier votre message d'erreur 719 00:43:11,200 --> 00:43:14,390 et dire, "non valide car cela existe déjà" ou quelque chose comme ça. 720 00:43:14,390 --> 00:43:22,420 Mais dans ce cas, je ne pouvais créer quelque chose en double. 721 00:43:22,420 --> 00:43:26,010 Maintenant, nous allons essayer et d'ajouter quelques validations. 722 00:43:26,010 --> 00:43:30,400 Le problème est maintenant que 723 00:43:30,400 --> 00:43:34,220 Je pouvais littéralement présenter un poteau complètement vide. 724 00:43:34,220 --> 00:43:37,500 Je peux cliquer sur ce bouton à l'heure actuelle, et il nous aller. 725 00:43:37,500 --> 00:43:40,290 Vous ne pouvez pas vraiment voir, mais cette ligne supplémentaire ici 726 00:43:40,290 --> 00:43:43,830 indique que j'ai littéralement un nouveau poste. 727 00:43:43,830 --> 00:43:46,050 Il a juste un auteur blanc et un corps blanc, 728 00:43:46,050 --> 00:43:48,630 et nous ne voulons pas permettre aux gens de le faire. 729 00:43:48,630 --> 00:43:52,550 C'est là qu'intervient la validation 730 00:43:52,550 --> 00:43:57,540 >> Je peux aller à mon modèle objet, 731 00:43:57,540 --> 00:43:59,530 et maintenant je peux ajouter une nouvelle fonction qui spécifie 732 00:43:59,530 --> 00:44:02,000 quelles sont les règles de validation que je dois ajouter à ce modèle 733 00:44:02,000 --> 00:44:06,840 pour s'assurer qu'il est valide ou de préciser ce que cela signifie d'être un message valide? 734 00:44:06,840 --> 00:44:10,210 Et je tiens à dire que c'est seulement un poste valable si l'auteur et corps 735 00:44:10,210 --> 00:44:15,150 ne sont pas blanc, et c'est ainsi que vous le faites dans Kohana. 736 00:44:15,150 --> 00:44:18,750 Vous créez une nouvelle fonction appelée «Règles» 737 00:44:18,750 --> 00:44:20,210 et puis vous revenez essentiellement un tableau associatif 738 00:44:20,210 --> 00:44:24,230 qui définit les règles de validation pour cet objet. 739 00:44:24,230 --> 00:44:27,530 Nous allons retourner le tableau, puis ce que nous allons faire, c'est 740 00:44:27,530 --> 00:44:32,820 dire «auteur», il va à un tableau, 741 00:44:32,820 --> 00:44:37,720 qui va à un autre tableau appelé "pas vide." 742 00:44:37,720 --> 00:44:41,480 Et puis je vais dire «corps». 743 00:44:50,980 --> 00:44:54,120 Bon, et la syntaxe de cette structure et pour cette 744 00:44:54,120 --> 00:44:56,530 peut sembler un peu lourd et un peu compliqué. 745 00:44:56,530 --> 00:44:59,330 Si vous lisez la documentation, il est assez simple à comprendre, 746 00:44:59,330 --> 00:45:02,500 Mais l'essentiel c'est ce que vous devez faire pour spécifier 747 00:45:02,500 --> 00:45:04,130 des règles de validation, et il ya beaucoup de règles différentes 748 00:45:04,130 --> 00:45:06,810 que Kohana vous donnera gratuitement, comme vous pouvez ajouter des règles à dire 749 00:45:06,810 --> 00:45:08,410 il doit être au moins de cette longueur. 750 00:45:08,410 --> 00:45:11,800 Peut-être qu'il doit être numérique. Peut-être qu'il doit être numérique alpha. 751 00:45:11,800 --> 00:45:14,410 Peut-être qu'il doit être au plus de longueur, ainsi de suite et ainsi de suite. 752 00:45:14,410 --> 00:45:17,730 Il ya beaucoup de règles différentes que Kohana fournit pour vous, 753 00:45:17,730 --> 00:45:19,610 et vous pouvez aller sur leur site web, regarder la documentation, 754 00:45:19,610 --> 00:45:23,150 et vous pouvez voir toutes les différentes choses que vous pouvez faire. 755 00:45:23,150 --> 00:45:25,650 >> Mais c'est tout ce que j'ai à faire, 756 00:45:25,650 --> 00:45:30,490 et maintenant nous allons voir ce qui se passe 757 00:45:30,490 --> 00:45:34,060 si je soumets un poste vide. 758 00:45:34,060 --> 00:45:36,960 Qu'est-ce qui va se passer? Oh, non, je reçois une erreur. 759 00:45:36,960 --> 00:45:39,440 Je reçois une exception de validation. 760 00:45:39,440 --> 00:45:41,070 Eh bien, c'est bon. 761 00:45:41,070 --> 00:45:43,200 Il m'a dit que mon modèle est invalide, 762 00:45:43,200 --> 00:45:45,780 mais je ne veux pas voir une exception 763 00:45:45,780 --> 00:45:48,720 à mes utilisateurs quand ils essaient de présenter quelque chose d'invalide, non? 764 00:45:48,720 --> 00:45:51,560 Je veux leur donner une sorte de message d'erreur convivial 765 00:45:51,560 --> 00:45:53,610 quand quelque chose va mal. 766 00:45:53,610 --> 00:46:01,830 Ce que nous allons faire, c'est que nous allons 767 00:46:01,830 --> 00:46:04,490 envelopper le tout dans une boucle essai de capture. 768 00:46:04,490 --> 00:46:06,750 En fait, je pense que c'est aussi quelque chose que vous n'avez pas encore appris 769 00:46:06,750 --> 00:46:10,820 dans CS50, parce que C, le langage de programmation C, 770 00:46:10,820 --> 00:46:14,000 ne pas avoir des exceptions, mais presque tous les autres une seule langue 771 00:46:14,000 --> 00:46:16,700 a des exceptions, si vraiment, vraiment brièvement, 772 00:46:16,700 --> 00:46:19,430 une exception est quelque chose qui un morceau de code peut 773 00:46:19,430 --> 00:46:21,430 lever une exception quand quelque chose va mal, 774 00:46:21,430 --> 00:46:23,410 mais alors peut-être un autre morceau de code plus haut 775 00:46:23,410 --> 00:46:25,810 peut attraper cette exception et en faire quelque chose. 776 00:46:25,810 --> 00:46:27,710 >> Par exemple, dans ce cas, 777 00:46:27,710 --> 00:46:29,940 le morceau de code qui essaie de sauver un modèle, 778 00:46:29,940 --> 00:46:33,170 il valide le modèle, et si elle dit, "Ok, ce modèle est invalide," 779 00:46:33,170 --> 00:46:36,150 il va lever une exception, et c'est un peu l'équivalent de 780 00:46:36,150 --> 00:46:39,870 en C vous pourriez vous retourner un -1 ou quelque chose comme ça. 781 00:46:39,870 --> 00:46:42,320 Et puis pour moi, cette fonction, mon code 782 00:46:42,320 --> 00:46:46,310 à un niveau supérieur, je peux essayer d'attraper cette exception 783 00:46:46,310 --> 00:46:49,330 et dire essentiellement: «Bon, si je prends l'exception, que vais-je faire?" 784 00:46:49,330 --> 00:46:51,570 Ou je pourrais choisir de ne pas attraper cette exception et laisser quelqu'un de plus haut 785 00:46:51,570 --> 00:46:54,400 attraper l'exception, ou si personne ne l'attrape, 786 00:46:54,400 --> 00:46:56,820 puis l'ensemble du programme se bloque et dit, 787 00:46:56,820 --> 00:46:59,170 "Quelque chose s'est mal passé, et je ne pouvais pas le supporter." 788 00:46:59,170 --> 00:47:04,490 >> Mais ce que nous faisons est que vous enroulez un morceau de code dans un bloc try, 789 00:47:04,490 --> 00:47:09,030 et puis vous ajoutez aussi quelque chose appelé un bloc catch, 790 00:47:09,030 --> 00:47:17,300 qui est le genre de code qui va essayer d'attraper les exceptions qui peuvent se produire. 791 00:47:17,300 --> 00:47:20,430 Et si je prends cette exception particulière 792 00:47:20,430 --> 00:47:23,110 ou invalidation exception, alors ce que je vais faire est 793 00:47:23,110 --> 00:47:31,210 Je vais régler les erreurs - je pense que c'est la façon dont je le fais - 794 00:47:31,210 --> 00:47:35,370 et je vais régler les erreurs à un objet. 795 00:47:35,370 --> 00:47:40,920 Et puis ce que je vais faire, c'est si elle frappe cette exception, 796 00:47:40,920 --> 00:47:43,090 ça ne va pas à rediriger, et si elle ne redirige pas, 797 00:47:43,090 --> 00:47:46,160 il va sortir de la si le blog 798 00:47:46,160 --> 00:47:49,920 et frappé ce blog / nouvelle, qui est veux que je veux faire. 799 00:47:49,920 --> 00:47:53,190 S'il ya une erreur, je veux revenir à la forme 800 00:47:53,190 --> 00:47:55,100 et afficher les erreurs. 801 00:47:55,100 --> 00:48:00,780 Maintenant, ce que je veux faire, c'est que je veux transmettre à ces erreurs 802 00:48:00,780 --> 00:48:07,010 à la vue. 803 00:48:07,010 --> 00:48:10,360 Bon, je crois que j'ai la vue de droite ici, 804 00:48:10,360 --> 00:48:14,660 et fondamentalement, je veux afficher ces erreurs, si elles existent. 805 00:48:14,660 --> 00:48:19,740 Avant d'écrire le code HTML pour cela, je vais très rapidement 806 00:48:19,740 --> 00:48:21,720 vous montrer ce que la structure de ces erreurs regards variables comme, 807 00:48:21,720 --> 00:48:23,080 et c'est une bonne pratique en général. 808 00:48:23,080 --> 00:48:25,070 Un grand nombre de fois que vous obtenez quelque chose de certaine méthode, 809 00:48:25,070 --> 00:48:27,250 une fonction dans le cadre de web, 810 00:48:27,250 --> 00:48:29,410 et vous ne savez pas ce que la variable ressemble, 811 00:48:29,410 --> 00:48:31,210 si vous ne savez pas comment travailler avec elle. 812 00:48:31,210 --> 00:48:37,790 Je vais utiliser une méthode d'impression pour imprimer r fondamentalement dehors. 813 00:48:37,790 --> 00:48:41,100 >> Et comme vous pouvez le voir, il me dit que c'est un tableau associé, 814 00:48:41,100 --> 00:48:44,880 et vous avez une clé, auteur, les points de cette chaîne, 815 00:48:44,880 --> 00:48:47,050 auteur ne doit pas être vide, et une autre touche, corps, 816 00:48:47,050 --> 00:48:49,680 des points à une autre chaîne, le corps ne doit pas être vide. 817 00:48:49,680 --> 00:48:52,130 Je suis comme, ok, cool. 818 00:48:52,130 --> 00:48:56,230 Ensuite, je peux parcourir le tableau et imprimer chaque message. 819 00:48:56,230 --> 00:49:02,150 Il est fondamentalement comme un tableau associatif avec un tas de messages. 820 00:49:02,150 --> 00:49:13,500 Ce que je vais faire est "si des erreurs», 821 00:49:13,500 --> 00:49:17,140 et je vais créer une liste non ordonnée, 822 00:49:17,140 --> 00:49:20,860 et je vais pour parcourir toutes les erreurs. 823 00:49:33,730 --> 00:49:38,710 Et ce, et maintenant je vais essayer de soumettre ce nouveau, 824 00:49:38,710 --> 00:49:41,200 et voyons ce que nous obtenons. 825 00:49:41,200 --> 00:49:45,370 Maintenant, nous obtenons cette belle liste d'erreurs, 826 00:49:45,370 --> 00:49:48,630 et cela est encore assez laid, mais cela peut évidemment être formaté à l'air agréable, 827 00:49:48,630 --> 00:49:51,620 mais l'idée de base est juste à quelques lignes de code, 828 00:49:51,620 --> 00:49:53,720 nous avons pu valider notre modèle, 829 00:49:53,720 --> 00:49:56,510 assurez-vous que certains champs ne sont pas vides, 830 00:49:56,510 --> 00:49:59,740 et si quelque chose n'allait pas, puis revenir une sorte de message d'erreur 831 00:49:59,740 --> 00:50:01,760 Je pourrais alors présenter à l'utilisateur. 832 00:50:01,760 --> 00:50:03,910 Vous pouvez également personnaliser votre validation 833 00:50:03,910 --> 00:50:07,590 de sorte que vous pouvez en fait avoir un message d'erreur 834 00:50:07,590 --> 00:50:09,620 qui est plus spécifique à votre application ou quelque chose comme ça. 835 00:50:09,620 --> 00:50:14,600 Tout ce qui est généralement personnalisable. 836 00:50:14,600 --> 00:50:17,150 >> Malheureusement, nous manquons de temps, 837 00:50:17,150 --> 00:50:20,040 donc je vais devoir couper la session de codage en direct ici. 838 00:50:20,040 --> 00:50:22,980 Il ya un tas d'autres fonctionnalités que je veux démontrer pour vous 839 00:50:22,980 --> 00:50:25,650 dans cet exemple. 840 00:50:25,650 --> 00:50:27,620 Par exemple, vous pouvez ajouter des modèles à votre site, 841 00:50:27,620 --> 00:50:31,110 alors peut-être il ya une sorte de code HTML que vous souhaitez appliquer 842 00:50:31,110 --> 00:50:35,190 à chaque page de votre site, et au lieu de le coller 843 00:50:35,190 --> 00:50:40,630 dans chaque fichier de vue unique que vous avez, ce qui serait évidemment une mauvaise pratique, 844 00:50:40,630 --> 00:50:43,020 vous pouvez en principe définir ces modèles, 845 00:50:43,020 --> 00:50:46,660 puis dans votre contrôleur dis: «Bon, je suis en utilisant ce modèle." 846 00:50:46,660 --> 00:50:50,130 "Ce que toutes mes vues utiliser ce modèle." 847 00:50:50,130 --> 00:50:52,470 Et une dernière chose que je veux vous démontrer ainsi 848 00:50:52,470 --> 00:50:57,800 que nous n'avons pas le temps pour est cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 et fondamentalement, je pense que vous avez probablement vu dans CS50 - 850 00:51:01,430 --> 00:51:03,770 Je pense que David Malan probablement parlé de la façon dont vous pouvez généralement injecter 851 00:51:03,770 --> 00:51:08,040 Le code JavaScript dans - avez-vous parlé de cela? 852 00:51:08,040 --> 00:51:10,220 Peut-être? Peut-être pas? 853 00:51:10,220 --> 00:51:12,670 >> Mais un grand nombre de fois, vous pouvez injecter du code JavaScript malveillant 854 00:51:12,670 --> 00:51:15,630 dans la base de données de quelqu'un, et si elles n'échappent pas correctement, 855 00:51:15,630 --> 00:51:18,280 puis quand ils présentent que des données à l'utilisateur, 856 00:51:18,280 --> 00:51:21,310 alors il peut exécuter une sorte de code JavaScript hasard vous ne voulez pas arriver, 857 00:51:21,310 --> 00:51:23,050 et j'allais montrer comment vous feriez que dans Kohana. 858 00:51:23,050 --> 00:51:25,380 C'est en fait vraiment, vraiment facile. 859 00:51:25,380 --> 00:51:31,920 Je pourrais le faire dès maintenant en 2 secondes littéralement. 860 00:51:31,920 --> 00:51:34,560 Tout ce que vous avez à faire est essentiellement envelopper ces choses 861 00:51:34,560 --> 00:51:46,920 dans ce qu'on appelle les entités HTML. 862 00:51:46,920 --> 00:51:51,180 Et qui va échapper automatiquement tous les caractères correctement 863 00:51:51,180 --> 00:51:54,730 et assurez-vous n'obtenez pas ce problème. 864 00:51:54,730 --> 00:51:57,220 [Étudiants] Vous orthographié le premier test de manière incorrecte. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Oh, oh là là. 866 00:52:01,030 --> 00:52:06,420 >> D'accord, c'est tout ce que je devais partager avec vous aujourd'hui. 867 00:52:06,420 --> 00:52:09,930 Ces diapositives vont être posté, mais ceux-ci sont généralement 868 00:52:09,930 --> 00:52:13,900 les seules ressources que vous devriez vraiment besoin de commencer avec Kohana. 869 00:52:13,900 --> 00:52:16,770 Vous pouvez aller sur le site. Ils ont un mode d'emploi, et ils ont aussi un explorateur de l'API. 870 00:52:16,770 --> 00:52:20,630 Nous pouvons explorer toutes les différentes fonctions et les fonctions d'assistance qu'ils ont pour vous. 871 00:52:20,630 --> 00:52:22,070 Ils ont généralement suffisamment d'informations sur le site Web 872 00:52:22,070 --> 00:52:25,310 que vous pouvez utiliser pour démarrer et y aller avec Kohana. 873 00:52:25,310 --> 00:52:30,840 Il n'y a pas que de nombreux tutoriels, je pense, pour Kohana, en dehors de 874 00:52:30,840 --> 00:52:33,880 ce qu'ils ont sur le site ici, donc c'est probablement votre meilleur choix. 875 00:52:33,880 --> 00:52:35,600 Mais si vous voulez aller avec le framework web 876 00:52:35,600 --> 00:52:37,120 et vous ne voulez pas avoir à chercher une nouvelle langue, 877 00:52:37,120 --> 00:52:39,780 et vous voulez quelque chose qui est relativement léger et a une courbe d'apprentissage facile, 878 00:52:39,780 --> 00:52:41,570 Je vous conseille vraiment Kohana. 879 00:52:41,570 --> 00:52:44,040 C'est probablement la meilleure offre pour cela. 880 00:52:44,040 --> 00:52:46,830 Le plus drôle, cependant, est de savoir si nous utilisions Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 nous aurions reproduit ce que nous venons de faire 882 00:52:48,550 --> 00:52:51,430 et probablement plus en moins de 3 minutes. 883 00:52:51,430 --> 00:52:54,710 Pas de blague, mais l'apprentissage Ruby on Rails prend beaucoup plus de temps 884 00:52:54,710 --> 00:52:56,780 qu'il n'en faudrait pour apprendre Kohana. 885 00:52:56,780 --> 00:52:58,840 Il s'agit essentiellement de votre choix sur ce que vous voulez choisir d'apprendre, 886 00:52:58,840 --> 00:53:01,260 mais si vous voulez obtenir rapidement opérationnel, 887 00:53:01,260 --> 00:53:03,870 Kohana est certainement un très bon choix. 888 00:53:03,870 --> 00:53:06,730 >> Toutes les dernières questions avant de terminer? Oui. 889 00:53:06,730 --> 00:53:08,020 [Étudiants] Comment pourrions-nous intégrer cette 890 00:53:08,020 --> 00:53:13,120 dans un cadre de CSS comme vous utilisiez lorsque vous instruisez? 891 00:53:13,120 --> 00:53:16,700 La question est comment pourrions-nous intégrer que d'un cadre de CSS? 892 00:53:16,700 --> 00:53:18,740 Qu'est-ce que nous serions probablement faire est de nous aurions probablement inclure 893 00:53:18,740 --> 00:53:21,090 un nouveau dossier où nous vider tous nos fichiers CSS, 894 00:53:21,090 --> 00:53:23,010 et puis nous aimerions également ajouter un nouveau modèle. 895 00:53:23,010 --> 00:53:26,090 Dans le modèle que nous avions incluons ces fichiers CSS 896 00:53:26,090 --> 00:53:28,410 pour s'assurer qu'ils sont référencées sur chaque page, 897 00:53:28,410 --> 00:53:32,220 et puis quand vous êtes réellement écrivez du HTML, 898 00:53:32,220 --> 00:53:34,010 vous ajoutez simplement les classes et autres joyeusetés appropriées, 899 00:53:34,010 --> 00:53:36,100 et par exemple, lorsque vous utilisez quelque chose comme la forme 900 00:53:36,100 --> 00:53:40,710 fonction d'aide, vous pouvez ajouter plusieurs paramètres après 901 00:53:40,710 --> 00:53:42,830 de spécifier quelles classes vous souhaitez être relié à diverses choses 902 00:53:42,830 --> 00:53:47,820 afin qu'ils puissent coiffer correctement, et c'est essentiellement la façon dont vous souhaitez aller. 903 00:53:47,820 --> 00:53:50,100 >> D'autres questions? 904 00:53:50,100 --> 00:53:52,090 Impressionnant. 905 00:53:52,090 --> 00:53:58,540 Merci pour votre temps, et vous remercier d'être venus. 906 00:53:58,540 --> 00:54:05,170 Je n'allais pas ajouter grand-chose d'autre, 907 00:54:05,170 --> 00:54:08,560 mais une chose vraiment rapide, c'est que nous n'avons pas de lien 908 00:54:08,560 --> 00:54:12,590 à la forme. 909 00:54:12,590 --> 00:54:14,310 Vraiment stupide. 910 00:54:14,310 --> 00:54:20,110 Ajoutons un - en fait dans la vue, blog, index, 911 00:54:20,110 --> 00:54:23,890 nous allons très rapidement ajouter un lien qui mène à la nouvelle page, 912 00:54:23,890 --> 00:54:26,770 la page où l'on peut insérer un nouveau poste. 913 00:54:26,770 --> 00:54:29,950 Nous allons pour ce faire. 914 00:54:29,950 --> 00:54:34,020 Ce qui est bien est qu'il ya tout ce groupe de fonctions d'aide HTML 915 00:54:34,020 --> 00:54:37,090 qui faire des choses différentes pour vous, si vous avez déjà vu les entités 916 00:54:37,090 --> 00:54:41,980 fonctionner ici, mais ils ont aussi une fonction appelée «point d'ancrage», 917 00:54:41,980 --> 00:54:45,400 laquelle vous pouvez taper dans le blog / nouvelle 918 00:54:45,400 --> 00:54:49,550 et dire, "Poster un nouveau blog." 919 00:54:49,550 --> 00:54:51,850 Et ce serait créer ce lien pour vous, 920 00:54:51,850 --> 00:54:54,120 et cela semble vraiment trivial à faire, mais cela est beau, 921 00:54:54,120 --> 00:54:58,720 car supposons que vous transférez votre site à partir de 1 domaine à l'autre. 922 00:54:58,720 --> 00:55:01,390 Et si vous venez d'écrire les URL vous-même, 923 00:55:01,390 --> 00:55:04,350 alors vous auriez à changer toutes les URL. 924 00:55:04,350 --> 00:55:06,850 Ou peut-être vous l'avez déplacé de 1 sous-dossier à un autre sous-dossier. 925 00:55:06,850 --> 00:55:08,790 Vous n'avez pas à changer toutes les URL vous-même, 926 00:55:08,790 --> 00:55:12,180 et ce n'est pas amusant. 927 00:55:12,180 --> 00:55:14,510 Vous pouvez utiliser cette ancre ici, 928 00:55:14,510 --> 00:55:18,950 et vous pouvez changer le nom de domaine ou le préfixe de sous-dossier 929 00:55:18,950 --> 00:55:20,640 dans le fichier de configuration une fois, 930 00:55:20,640 --> 00:55:22,980 et alors il s'applique que partout, et c'est, encore une fois, 931 00:55:22,980 --> 00:55:26,930 un excellent exemple de ne pas répéter vous-même, le séchage de votre code sur. 932 00:55:26,930 --> 00:55:30,370 Où que vous vous répétez, essayer et extraire en quelque sorte de fichier de configuration 933 00:55:30,370 --> 00:55:34,160 ou à une autre fonction et le faire gérer pour vous. 934 00:55:34,160 --> 00:55:42,930 >> Et la dernière chose que je voulais vous montrer était 935 00:55:42,930 --> 00:55:50,250 supposons que nous sommes de retour à ce poste, et j'avais composé quelques très long essai, 936 00:55:50,250 --> 00:55:52,670 mais j'ai oublié d'inclure mon auteur. 937 00:55:52,670 --> 00:55:55,210 Maintenant, quand je clique sur "Envoyer Post" 938 00:55:55,210 --> 00:55:57,270 Je viens de perdre tout. 939 00:55:57,270 --> 00:56:00,000 Non! Vraiment triste. 940 00:56:00,000 --> 00:56:03,870 Alors, comment gérez-vous cela? 941 00:56:03,870 --> 00:56:06,070 C'est ce que nous faisons. 942 00:56:06,070 --> 00:56:09,340 Ce que nous faisons est là pour ces fonctions d'entrée et la zone de texte, 943 00:56:09,340 --> 00:56:12,700 si nous incluons un second paramètre, alors la valeur de ce second paramètre 944 00:56:12,700 --> 00:56:16,620 va être ce que le domaine va être d'abord rempli avec. 945 00:56:16,620 --> 00:56:23,570 Ce que nous pourrions faire, c'est dans notre contrôleur de blog, 946 00:56:23,570 --> 00:56:25,360 nous pourrions engager une autre variable. 947 00:56:25,360 --> 00:56:27,050 Appelez-le "valeurs" peut-être. 948 00:56:27,050 --> 00:56:30,620 Et passer dans le tableau de poste, littéralement. 949 00:56:30,620 --> 00:56:32,620 Cela signifie que si la validation n'a pas réussi, 950 00:56:32,620 --> 00:56:36,570 me passer le poste tableau que j'ai présenté à la dernière demande, 951 00:56:36,570 --> 00:56:38,420 et de cette façon je peux utiliser les valeurs de ma dernière présentation 952 00:56:38,420 --> 00:56:44,540 pour repeupler les champs. 953 00:56:44,540 --> 00:56:49,600 Maintenant, je peux faire quelque chose comme valeurs auteur 954 00:56:49,600 --> 00:56:55,180 et valeurs corps, et de cette façon maintenant, si je fais un peu de choses au hasard 955 00:56:55,180 --> 00:57:01,490 et cliquez sur «Soumettre Post," alors il y reste. 956 00:57:01,490 --> 00:57:03,830 Mais nous allons courir à un autre problème. 957 00:57:03,830 --> 00:57:07,670 Cela fonctionne, mais si je vais à la page la première fois, 958 00:57:07,670 --> 00:57:09,720 il va tomber en panne, et c'est parce que la première fois 959 00:57:09,720 --> 00:57:13,730 nous passons à la page, cette variable de poste n'a pas encore été défini. 960 00:57:13,730 --> 00:57:18,170 C'est nul. Il n'existe pas. 961 00:57:18,170 --> 00:57:21,630 >> Et ce que nous voulons dire, c'est que si cette clé existe, 962 00:57:21,630 --> 00:57:27,750 alors retourner la valeur de ce tableau, 963 00:57:27,750 --> 00:57:30,450 mais si la clé n'existe pas, alors retourner une chaîne vide. 964 00:57:30,450 --> 00:57:32,150 C'est la fonctionnalité que nous voulons ici. 965 00:57:32,150 --> 00:57:34,690 Nous voulons vérifier si la clé existe avant d'essayer d'accéder au réseau, 966 00:57:34,690 --> 00:57:36,580 et assez heureusement, 967 00:57:36,580 --> 00:57:38,570 Kohana nous donne aussi une fonction d'aide pour cela. 968 00:57:38,570 --> 00:57:41,040 Ils ont toute cette suite de fonctions 969 00:57:41,040 --> 00:57:43,660 sous le nom ARR, court pour tableau, 970 00:57:43,660 --> 00:57:45,800 et ils ont une fonction appelée «obtenir», 971 00:57:45,800 --> 00:57:48,690 et vous pouvez passer dans le tableau, 972 00:57:48,690 --> 00:57:50,740 et vous pouvez passer dans le nom de la clé. 973 00:57:50,740 --> 00:57:54,330 Puis essentiellement ce qu'il va faire, c'est qu'il va essayer d'obtenir cette clé, 974 00:57:54,330 --> 00:57:56,470 mais si la clé n'existe pas dans le tableau, 975 00:57:56,470 --> 00:58:00,900 il sera de retour vierge, ou nous pouvons également spécifier une valeur par défaut, je crois, 976 00:58:00,900 --> 00:58:03,500 ce qui est agréable. 977 00:58:09,740 --> 00:58:13,150 Maintenant, si nous faisons la même chose de nouveau, 978 00:58:13,150 --> 00:58:15,970 alors vous voyez cela fonctionne la première fois, 979 00:58:15,970 --> 00:58:18,080 et encore, si on tape dans des trucs au hasard 980 00:58:18,080 --> 00:58:23,210 et essayer de présenter, il y reste. 981 00:58:23,210 --> 00:58:31,640 >> Et je suppose que je peux aussi vous montrer comment ajouter un modèle très rapidement. 982 00:58:31,640 --> 00:58:36,140 Ce que nous pouvons faire en premier, c'est que nous pouvons ajouter une nouvelle vue appelée "template.php" 983 00:58:36,140 --> 00:58:38,890 dans le dossier Vues, 984 00:58:38,890 --> 00:58:44,730 et ce que je vais faire, c'est que je vais imprimer quelque chose appelé «contenu» 985 00:58:44,730 --> 00:58:49,130 qui va être ma page principale. 986 00:58:49,130 --> 00:58:51,380 Et peut-être tout en bas, je vais ajouter, par exemple, 987 00:58:51,380 --> 00:58:53,340 le droit d'auteur. 988 00:58:53,340 --> 00:58:56,150 [Question des étudiants inaudible] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Peut-être que c'est un modèle vraiment de base que je veux utiliser. 990 00:58:58,050 --> 00:59:02,840 Je veux avoir un dossier avec mes droits d'auteur sur chaque page, 991 00:59:02,840 --> 00:59:05,560 et maintenant ce que je vais faire dans mon contrôleur 992 00:59:05,560 --> 00:59:07,740 est maintenant au lieu de dire, "s'étend Controller" 993 00:59:07,740 --> 00:59:11,870 Je vais vous dire, "s'étend Controller_Template" 994 00:59:11,870 --> 00:59:15,890 et maintenant au lieu de dire, «corps de la réponse est égale à ce point de vue," 995 00:59:15,890 --> 00:59:24,110 Je vais vous dire, "le contenu de ce modèle est -" 996 00:59:24,110 --> 00:59:27,690 et je pense - que je mets un signe égal? 997 00:59:27,690 --> 00:59:32,710 J'oublie. Ouais, je pensais. 998 00:59:32,710 --> 00:59:37,710 Et maintenant, je mets cette variable contenu d'égaler la vue. 999 00:59:37,710 --> 00:59:40,960 Je peux faire la même chose ici. 1000 00:59:49,620 --> 00:59:57,170 Et maintenant, si je vous rafraîchir, vous pouvez voir maintenant ce droit d'auteur, il est ajouté, 1001 00:59:57,170 --> 01:00:00,350 et juste faire quelque poste aléatoire, 1002 01:00:00,350 --> 01:00:06,760 puis, à nouveau, vous devriez voir que le droit d'auteur est en bas de la page. 1003 01:00:06,760 --> 01:00:10,730 >> Grand. C'est tout ce que je voulais vous montrer les gars. 1004 01:00:10,730 --> 01:00:14,970 [Applaudissements] 1005 01:00:14,970 --> 01:00:18,950 Vous avez des questions? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]