Construire un flux RSS 2.0 avec CodeIgniter

Dans ce tutoriel, nous allons construire un flux RSS 2.0 avec le framework PHP CodeIgniter. Après ce tutoriel, vous pourrez créer un flux pour n'importe quel site Web personnalisé en un rien de temps..

Détails du tutoriel

  • Programme: Framework PHP CodeIgniter
  • Version: 1.7.1
  • Difficulté: Facile
  • Temps d'exécution estimé: 30 minutes

Étape 1: Ce dont nous avons besoin

Dans un premier temps, nous allons examiner les outils nécessaires pour commencer. Outre l'installation de CodeIgniter, nous avons besoin d'une base de données MySQL en cours d'exécution avec du contenu à partir duquel nous pouvons créer notre flux..

À cette fin, voici quelques entrées factices que vous pouvez importer. Créez une base de données appelée tut_feeds. Copiez ensuite le code suivant et importez-le dans votre base de données MySQL..

 CREATE TABLE IF NOT PAS EXISTS 'posts' ('id' int (11) NOT NULL AUTO_INCREMENT, 'title' varchar (120) NOT NULL, le texte 'text' NOT NULL, la date 'date' NOT NULL, la clé primaire ('id' )) ENGINE = MyISAM; INSERT INTO 'posts' ('id', 'title', 'text', 'date') VALUES (1, 'Un bon article', 'Il est un fait établi depuis longtemps qu'un lecteur sera distrait par le contenu lisible de Lorem Ipsum a pour avantage de présenter une distribution plus ou moins normale des lettres, par opposition à l’utilisation de "Content here, content here", ce qui lui donne un aspect lisible en anglais. Lorem Ipsum est désormais le texte modèle par défaut des éditeurs de pages Web et de éditeurs de pages Web. Une recherche sur "lorem ipsum" permet de découvrir de nombreux sites Web encore à leurs balbutiements. humour injecté, etc.). ',' 2009-08-10 '), (2,' Un autre excellent article ',' Il est un fait établi de longue date qu'un lecteur sera distrait par le contenu lisible d'une page lorsqu'il regarde Lorem Ipsum a pour avantage d’avoir une distribution plus ou moins normale des lettres, par opposition à "Contenu ici, suite ent here ", ce qui donne l’apparence d’un anglais lisible. De nombreux logiciels de publication assistée par ordinateur et éditeurs de pages Web utilisent maintenant Lorem Ipsum comme modèle de texte par défaut. Une recherche sur "lorem ipsum" permet de découvrir de nombreux sites Web encore à leurs balbutiements. Différentes versions ont évolué au fil des ans, parfois par accident, parfois exprès (humour injecté, etc.). ',' 2009-08-10 '), (3,' Des nouvelles de mon alimentation ',' C'est un fait établi de longue date qu'un lecteur sera distrait par le contenu lisible d'une page lorsqu'il examinera sa mise en page. L'intérêt de Lorem Ipsum est de présenter une distribution plus ou moins normale des lettres, par opposition à "Contenu ici, contenu ici ", le rendant ainsi lisible en anglais. De nombreux logiciels de publication assistée par ordinateur et éditeurs de pages Web utilisent maintenant Lorem Ipsum comme texte modèle par défaut, et la recherche sur" lorem ipsum "permet de découvrir de nombreux sites Web encore à leurs balbutiements. Différentes versions ont évolué les années, parfois par accident, parfois exprès (humour injecté, etc.). ',' 2009-08-10 ');

Voici comment cela devrait apparaître dans phpmyadmin. Après avoir collé le code, appuyez sur le bouton D'accord bouton sur le côté droit.

Si tout fonctionne correctement, vous devriez voir quelque chose comme ceci:

Étape 2: Configuration de CodeIgniter

Avant de commencer à écrire du code, nous devons configurer CodeIgniter.

Accédez à votre dossier CI, puis à système / application / config. Nous devrons éditer les fichiers suivants:

  • autoload.php
  • config.php
  • database.php
  • routes.php

Editez le fichier autoload.php comme ceci:

 $ autoload ['libraries'] = array ('base de données');

Cela indiquera à CI de charger la base de données automatiquement. donc on n'a pas besoin de le charger à chaque fois.

Editez le fichier config.php comme ceci:

 $ config ['base_url'] = "http: // localhost / YOUR DIRECTORY";

Vous devez remplacer tutoriels / ci_feeds avec votre répertoire et votre dossier CI.

Editez le database.php comme ceci:

 $ db ['default'] ['hostname'] = "localhost"; // votre hôte $ db ['default'] ['username'] = "root"; $ db ['default'] ['password'] = ""; $ db ['default'] ['database'] = "tut_feeds";

Avec ces paramètres, nous indiquons à CI quelle base de données utiliser. Ici, vous devez également remplacer nom d'hôte, Nom d'utilisateur et
mot de passe avec vos informations de base de données personnelles.

Editez le fichier routes.php comme ceci:

 $ route ['default_controller'] = "Flux";

Le contrôleur par défaut est le "indice" contrôleur pour votre application. Chaque fois que vous ouvrez
localhost / VOTRE ANNUAIRE, ce contrôleur par défaut sera chargé en premier. Nous allons créer le alimentation dans la prochaine étape.

Étape 3: Création du contrôleur d’alimentation

Dans ce contrôleur, toute la magie se produit. Naviguez vers système / application / contrôleurs et créer un nouveau fichier
appelé feed.php. Ensuite, créez le Alimentation contrôleur et le faire étendre le contrôleur CI parent.

 classe Feed étend Controller function Feed () parent :: Controller (); 

Si vous êtes déjà confus, jetez un coup d'œil à Jeffrey
Didacticiel Développement facile avec CodeIgniter.
Après avoir appris les bases, revenez pour continuer ce tutoriel! :)

Avant la prochaine étape, nous utiliserons les formidables assistants de CI. Charger le xml et texte assistant.

classe Feed étend Controller function Feed () parent :: Controller (); $ this-> load-> helper ('xml'); $ this-> load-> helper ('text'); 

Étape 4: Création du modèle

Ensuite, créera un modèle pour recevoir les données de la base de données. Si vous ne savez pas ce que sont les modèles, regardez le CI
mode d'emploi. Naviguez vers système / application / modèles
et créez un fichier appelé posts_model.php.

class Posts_model étend Model // récupère toutes les publications de la fonction getPosts ($ limit = NULL) return $ this-> db-> get ('posts', $ limit); 

Nous utilisons des enregistrements actifs pour recevoir des données
de la base de données. Le premier paramètre déclare la table que nous voulons utiliser et avec le second nous pouvons définir une limite - de sorte que
peut indiquer à CI le nombre d'enregistrements que nous voulons récupérer.

Peut-être avez-vous remarqué que limite de $ est défini sur NULL par défaut. Cela permet de définir une limite, mais tu n'es pas obligé.
Si vous ne définissez pas de second paramètre, cette fonction renverra simplement tous les enregistrements..

Étape 5: Retour au contrôleur d'alimentation

Maintenant que nous avons créé notre modèle, nous pouvons continuer avec notre contrôleur d'alimentation. Nous allons charger le posts_model que nous venons de créer.

classe Feed étend Controller function Feed () parent :: Controller (); $ this-> load-> helper ('xml'); $ this-> load-> helper ('text'); $ this-> load-> model ('posts_model', 'posts'); 

Avec le deuxième paramètre, nous affectons notre modèle à un nom d'objet différent - nous avons donc moins à taper: P. Maintenant nous créons le indice
méthode qui est la méthode appelée par défaut. Configurons plus tard certaines informations pour la vue du fil.

 function index () $ data ['feed_name'] = 'Mon site web.com'; // votre site web $ data ['encoding'] = 'utf-8'; // l'encodage $ data ['feed_url'] = 'http://www.MyWebsite.com/feed'; // l'URL de votre flux $ data ['page_description'] = 'De quoi parle mon site vient ici'; // une description $ data ['page_language'] = 'en-en'; // la langue $ data ['creator_email'] = '[email protected]'; // votre email $ data ['posts'] = $ this-> posts-> getPosts (10); en-tête ("Type de contenu: application / rss + xml"); // important! 

Bien que la majorité des informations ci-dessus soient faciles à comprendre, nous en examinerons deux..
en-tête ("Type de contenu: application / rss + xml"); est une partie très importante. Ceci indique au navigateur de l’analyser comme
un flux RSS. Sinon, le navigateur essaiera de l’analyser sous forme de texte brut ou HTML..

Avec $ data ['posts'] = $ this-> posts-> getPosts (10); nous utilisons notre modèle et stockons tous les enregistrements dans le $ posts tableau.
Je fixe la limite à 10; ainsi, il retournera au plus 10 enregistrements. Vous pouvez définir cette valeur supérieure ou inférieure si vous le souhaitez. Si on en sort
vide, comme $ data ['posts'] = $ this-> posts-> getPosts ();, il renverrait tous les enregistrements.

Enfin, nous devons charger le vue que nous allons créer dans la prochaine étape.

 function index () $ data ['feed_name'] = 'Mon site web.com'; $ data ['encoding'] = 'utf-8'; // l'encodage $ data ['feed_url'] = 'http://www.MyWebsite.com/feed'; $ data ['page_description'] = 'L \' objet de mon site vient ici '; $ data ['page_language'] = 'en-en'; $ data ['creator_email'] = '[email protected]'; $ data ['posts'] = $ this-> posts-> getPosts (10); en-tête ("Type de contenu: application / rss + xml"); $ this-> load-> view ('rss', $ data); 

Notre $ data tableau est passé en tant que deuxième paramètre au fichier de vue, nous pouvons donc y accéder dans la vue.
Votre contrôleur d'alimentation devrait maintenant ressembler à ceci:

classe Feed étend Controller function Feed () parent :: Controller (); $ this-> load-> helper ('xml'); $ this-> load-> helper ('text'); $ this-> load-> model ('posts_model', 'posts');  function index () $ data ['feed_name'] = 'Mon site web.com'; $ data ['encoding'] = 'utf-8'; $ data ['feed_url'] = 'http://www.MyWebsite.com/feed'; $ data ['page_description'] = 'L \' objet de mon site vient ici '; $ data ['page_language'] = 'en-en'; $ data ['creator_email'] = '[email protected]'; $ data ['posts'] = $ this-> posts-> getPosts (10); en-tête ("Type de contenu: application / rss + xml"); $ this-> load-> view ('rss', $ data); 

Étape 6: Création de la vue

Enfin, nous devons créer le fichier de vue - notre sortie. Naviguez vers système / application / vues et créer un fichier appelé
rss.php.

D'abord nous avons mis le version xml et le codage dans la tête.

 '. "\ n"; ?>

Suivi par quelques méta informations rss.

  

Maintenant nous allons accéder au tableau $ data de l'étape précédente. Nous pouvons accéder à ces données via les clés du tableau, comme suit:

 <?php echo $feed_name; ?>     droits d'auteur  

Maintenant, nous devons faire une boucle avec pour chaque, pour obtenir tous les enregistrements.

 résultat () en tant que $ post):?>  <?php echo xml_convert($post->Titre); ?> id)?> id)?> texte, 200); ?>]]> rendez-vous amoureux; ?>    <

Pour lien et guider, vous devez définir un lien vers votre contrôleur où les messages sont récupérés. Par exemple: mon / posts / $ post-> id.

J'espère que vous avez remarqué CDATA. Ceci est utilisé pour la sortie de texte (contenu). Rappelez-vous comment nous avons appris dans la tête que c’est xml;
il doit donc être xml valide. Si nous ne définissons pas CDATA, nous risquons de nous retrouver avec un balisage non valide..

Étape 7: aperçu

Maintenant, vos fichiers devraient ressembler à ceci:

système / application / contrôleurs / feed.php

classe Feed étend Controller function Feed () parent :: Controller (); $ this-> load-> helper ('xml'); $ this-> load-> helper ('text'); $ this-> load-> model ('posts_model', 'posts');  function index () $ data ['feed_name'] = 'Mon site web.com'; $ data ['encoding'] = 'utf-8'; $ data ['feed_url'] = 'http://www.MyWebsite.com/feed'; $ data ['page_description'] = 'L \' objet de mon site vient ici '; $ data ['page_language'] = 'en-en'; $ data ['creator_email'] = '[email protected]'; $ data ['posts'] = $ this-> posts-> getPosts (10); en-tête ("Type de contenu: application / rss + xml"); $ this-> load-> view ('rss', $ data); 

system / application / models / posts_model.php

class Posts_model étend Model // récupère toutes les publications de la fonction getPosts ($ limit = NULL) return $ this-> db-> get ('posts', $ limit); 

system / application / views / rss.php

 '. "\ n"; ?>   <?php echo $feed_name; ?>     droits d'auteur   résultat () en tant que $ post):?>  <?php echo xml_convert($post->Titre); ?> id)?> id)?> texte, 200); ?>]]> rendez-vous amoureux; ?>    

Et notre flux ressemble à ceci, juste avec un autre contenu :)

Conclusion

J'espère que vous avez appris à quel point il est facile de créer un flux RSS 2.0 doté de la puissance de CodeIgniter. Pour plus de tutoriels et de screencasts sur CodeIgniter, jetez un œil à CodeIgniter de la série Scratch de Jeffrey.

  • Suivez-nous sur Twitter ou abonnez-vous au fil RSS Nettuts + pour obtenir les meilleurs tutoriels de développement Web sur le Web..