Maison > développement back-end > tutoriel php > Construire une application de blog simple avec MongoDB et PHP

Construire une application de blog simple avec MongoDB et PHP

Joseph Gordon-Levitt
Libérer: 2025-02-22 10:21:16
original
917 Les gens l'ont consulté

Construire une application de blog simple avec MongoDB et PHP

Les plats clés

  • MongoDB est une base de données NoSQL orientée document qui améliore les performances et l'évolutivité, ce qui le rend idéal pour les applications de blog où les collections et les documents peuvent être facilement gérés.
  • Le pilote PHP MongoDB est essentiel pour connecter les applications PHP à MongoDB, permettant des opérations CRUD directement à partir de scripts PHP.
  • L'authentification simple de l'utilisateur peut être implémentée à l'aide de HTTP Auth pour les sections d'administration du blog, bien que pour des applications plus robustes, un cadre d'authentification complet soit recommandé.
  • L'application de blog utilise des opérations de base de crud pour la gestion des articles de blog, avec des fonctionnalités supplémentaires pour les commentaires, tous stockés dans les collections MongoDB.
  • La structure de l'application comprend des répertoires et des fichiers distincts pour les tâches et les vues administratives, promouvant une forme simpliste d'architecture MVC qui peut être développée davantage à l'aide de cadres à grande échelle.

Introduction

Si vous souhaitez créer un blog à l'aide de MongoDB et PHP, cet article vous apprendra à:

  • Connectez-vous à une base de données MongoDB
  • Enregistrer les documents dans une collection
  • Documents de requête dans une collection
  • Effectuer des requêtes de plage
  • Trier les documents, mettre à jour un document, supprimer un ou plusieurs documents d'une collection

La raison pour laquelle j'ai choisi de créer une application de blog est parce qu'il s'agit d'une application CRUD de base et qu'elle convient très pour s'assurer dans le développement Web PHP et MongoDB. Nous créerons une interface utilisateur simple à l'aide de bootstrap avec des zones de texte et des boutons simples. Une base de données MongoDB stockera tout le contenu. Vous pouvez télécharger la source complète depuis GitHub, voir un frontage de démonstration ici et essayer le backend de l'application de démonstration avec le nom d'utilisateur et le mot de passe du du dutythien .

Qu'est-ce que mongodb

Selon le site officiel, MongoDB est une base de données de documents qui offre des performances élevées, une haute disponibilité et une évolutivité facile. MongoDB tombe dans le groupe de bases de données NOSQL orientées documents. Pour d'autres sous-types de bases de données NoSQL, voir ici.

MongoDB Concepts: bases de données, collections et documents

  1. Base de données: MongoDB regroupe les données dans les bases de données de la même manière que la plupart des bases de données relationnelles. Si vous avez une expérience des bases de données relationnelles, vous devriez y penser de la même manière. Dans un SGBDR, une base de données est un ensemble de tables, de procédures stockées, de vues, etc. Dans MongoDB, une base de données est un ensemble de collections. Une base de données MongoDB contient une ou plusieurs collections. Par exemple, une base de données pour une application de blogs nommée Blog peut généralement avoir les articles de collections, les auteurs, les commentaires, les catégories, etc.

  2. Collection: Une collection est l'équivalent d'une table RDBMS. Une collection existe dans une seule base de données. Les collections n'appliquent pas de schéma. Les documents dans une collection peuvent avoir différents champs. En règle générale, tous les documents d'une collection ont un objectif similaire ou connexe.

  3. Documents: un enregistrement dans une collection MongoDB et l'unité de base des données dans MongoDB. Les documents sont analogues aux objets JSON mais existent dans la base de données dans un format plus riche en type appelé BSON. Un document contient un ensemble de champs ou de paires de valeurs clés. La meilleure façon de penser à un document est un tableau multidimensionnel. Dans un tableau, vous avez un ensemble de clés qui mappent les valeurs (document == array). Voir les documents.

Installation de mongodb

MongoDB fonctionne sur la plupart des plateformes et prend en charge les architectures 32 bits et 64 bits. MongoDB est disponible en binaire ou en tant que package. Dans les environnements de production, utilisez des binaires MongoDB 64 bits. Cette section couvrira l'installation sur Ubuntu Linux et Windows. Pour d'autres systèmes d'exploitation, veuillez consulter leur documentation.

C'est ainsi que Mongo est installé sur Ubuntu Linux. Ouvrez le terminal et exécutez ce qui suit:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
#
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

émettez maintenant la commande suivante pour mettre à jour votre référentiel et installer la dernière version stable de MongoDB:

sudo apt-get update
sudo apt-get install mongodb-10gen
Copier après la connexion
Copier après la connexion
Copier après la connexion

fait, vous avez installé avec succès MongoDB. Maintenant, démarrez et arrêtez le service MongoDB via la ligne de commande ci-dessous.

sudo service mongodb start
sudo service mongodb stop
Copier après la connexion
Copier après la connexion
Copier après la connexion

En cas d'erreur de démarrage pour essayer d'exécuter la commande suivante:

sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
#or
sudo mongod -f /etc/mongodb.conf
Copier après la connexion
Copier après la connexion
Copier après la connexion

Ce qui suit décrit comment l'installer sur Windows:

Rendez-vous sur la page de téléchargements sur le site officiel de MongoDB. Cliquez sur le lien de téléchargement pour la dernière version stable sous Windows.

Une fois le téléchargement terminé, extraire et déplacer en C :. MongoDB nécessite un dossier de données dans lequel stocker ses fichiers. L'emplacement par défaut pour le répertoire de données MongoDB est C: DATADB. S'il n'existe pas, créez-le.

Pour démarrer mongodb, exécutez à partir de l'invite de commande

C:\> cd \mongodb\bin
C:\mongodb\bin> mongod
Copier après la connexion
Copier après la connexion
Copier après la connexion

fait, vous avez installé avec succès MongoDB. Maintenant, démarrez et arrêtez le service MongoDB via la ligne de commande ci-dessous.

net start MongoDB
net stop  MongoDB
Copier après la connexion
Copier après la connexion
Copier après la connexion

Installation du pilote PHP pour MongoDB

Le serveur MongoDB est conçu pour déjà fonctionner avec votre serveur Web actuel, mais pas PHP. Pour faire parler PHP au serveur MongoDB, nous allons avoir besoin du pilote PHP-MongoDB. Il s'agit d'une bibliothèque d'extension PHP.

Si vous utilisez Linux, installez-le facilement via:

sudo pecl install mongo
Copier après la connexion
Copier après la connexion
Copier après la connexion

Ajouter la ligne d'extension = mongo.so à votre configuration php.ini et vous êtes prêt à partir:

sudo -i
echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
Copier après la connexion
Copier après la connexion

Redémarrez votre serveur Web et vérifiez via la ligne de commande:

php -i |grep "mongo"
php --re mongo
Copier après la connexion
Copier après la connexion

Installation du pilote sur Windows

Essayons d'installer le pilote sur une machine Windows exécutant PHP 5.4 sur Apache (XAMPP):

  1. Téléchargez l'archive zip https://github.com/mongodb/mongo-php-driver/downloads sur votre machine et extraire.
  2. Copiez le fichier php_mongo.dll du dossier extrait vers le répertoire d'extension PHP (C: XAMPPPHPEXT).
  3. Ouvrez le fichier php.ini dans votre installation PHP et ajoutez la ligne suivante: Extension = php_mongo.dll
  4. Enregistrez le fichier et fermez-le. Redémarrer le xamp.
  5. Ouvrez votre éditeur de texte et ajoutez le code suivant à un nouveau fichier: Php phpinfo () ;?>, enregistrez le fichier en phpinfo.php dans le documentroot du serveur Web Apache (HTDOCS) et ouvrez le PHP script dans le navigateur. Si vous voyez Mongo dans les informations PHP, l'installation a réussi.

Développement Web de Mongo avec PHP

Connexion à un serveur de base de données MongoDB

La connexion à MongoDB de PHP est très similaire à la connexion à toute autre base de données. L'hôte par défaut est localhost, et le port par défaut est 27017.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
#
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Connexion à un hôte distant avec un port personnalisé en option et un auth:

sudo apt-get update
sudo apt-get install mongodb-10gen
Copier après la connexion
Copier après la connexion
Copier après la connexion

Sélection d'une base de données

Une fois la connexion du serveur de base de données établie, nous l'utiliserons pour accéder à une base de données. La façon définie de le faire est:

sudo service mongodb start
sudo service mongodb stop
Copier après la connexion
Copier après la connexion
Copier après la connexion

Les bases (opérations CRUD)

MongoDB fournit une sémantique riche pour la lecture et la manipulation des données. Crud signifie Créer, lire, mettre à jour et supprimer. Ces termes sont le fondement de toutes les interactions avec la base de données.

Création / sélection d'une collection

La sélection et la création d'une collection sont très similaires à l'accès et à la création d'une base de données. Si une collection n'existe pas, elle est créée:

sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
#or
sudo mongod -f /etc/mongodb.conf
Copier après la connexion
Copier après la connexion
Copier après la connexion

Par exemple, cela crée la collection «publications» dans mon blog:

C:\> cd \mongodb\bin
C:\mongodb\bin> mongod
Copier après la connexion
Copier après la connexion
Copier après la connexion

Création d'un document

La création d'un document dans MongoDB n'a pas pu être plus facile. Créez un tableau. Passez-le dans la méthode d'insertion sur l'objet de collecte

net start MongoDB
net stop  MongoDB
Copier après la connexion
Copier après la connexion
Copier après la connexion

La méthode insert () stocke les données de la collecte. Le tableau de post $ reçoit automatiquement un champ nommé _id, qui est l'objet unique autoogène du document BSON inséré. Vous pouvez également utiliser la méthode Save (), qui upserts - met à jour un enregistrement existant, ou en crée un nouveau s'il n'existe pas.

lire un document

Pour obtenir des données d'une collection, j'utilise la méthode find (), qui obtient toutes les données d'une collection. FindOne () ne renvoie qu'un seul document qui satisfait les critères de requête spécifiés. Les exemples suivants vous montreront comment interroger un ou plusieurs enregistrements.

sudo pecl install mongo
Copier après la connexion
Copier après la connexion
Copier après la connexion

Mise à jour d'un document

modifie un document ou des documents existants dans une collection. Par défaut, la méthode Update () met à jour un seul document. Si l'option Multi est définie sur true, la méthode met à jour tous les documents qui correspondent aux critères de requête.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
#
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

La méthode Update () prend deux paramètres. Le premier est les critères pour décrire les objets à mettre à jour et le second l'objet avec lequel mettre à jour les enregistrements correspondants. Il existe également un troisième paramètre facultatif par lequel vous pouvez passer dans un tableau d'options.

mini blog

La structure du projet que nous allons construire:

sudo apt-get update
sudo apt-get install mongodb-10gen
Copier après la connexion
Copier après la connexion
Copier après la connexion

Avant de commencer avec notre code PHP réel, nous devons créer nos fichiers et dossiers comme ci-dessus.

config.php

Il s'agit de votre fichier de configuration qui indique à notre application comment se connecter à la base de données. C'est là que vous avez défini le nom de la base de données, le nom d'utilisateur et le mot de passe de l'utilisateur pour accéder à cette base de données:

sudo service mongodb start
sudo service mongodb stop
Copier après la connexion
Copier après la connexion
Copier après la connexion

où nous définissons Paramaters Userauth et PasswordAuth pour protéger le dossier administrateur via l'authentification HTTP. Nous utilisons HTTP Auth pour une simplicité ici, étant donné que le thème central de l'article est de se connecter à MongoDB - vous utiliseriez généralement une sorte de cadre décent avec ACL pour construire dans le contrôle d'accès.

app.php:

sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
#or
sudo mongod -f /etc/mongodb.conf
Copier après la connexion
Copier après la connexion
Copier après la connexion

admin

C'est le dossier qui contient le code crud.

C:\> cd \mongodb\bin
C:\mongodb\bin> mongod
Copier après la connexion
Copier après la connexion
Copier après la connexion

Pour le fichier complet index.php, voir ici. Ci-dessus, j'ai utilisé la fonction de vue dans la classe Layout.php qui chargera automatiquement Dashboard.View.php.

net start MongoDB
net stop  MongoDB
Copier après la connexion
Copier après la connexion
Copier après la connexion

L'état du paramètre GET correspond à une action crud. Par exemple, lorsque le statut est «Créer»:

sudo pecl install mongo
Copier après la connexion
Copier après la connexion
Copier après la connexion

La vue de la fonction («admin / create», $ data) montre un formulaire HTML où l'utilisateur peut écrire le titre / le contenu d'un nouveau blog, ou il enregistre les données soumises par l'utilisateur à MongoDB. Par défaut, le script affiche le formulaire HTML suivant:

sudo -i
echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
Copier après la connexion
Copier après la connexion

Construire une application de blog simple avec MongoDB et PHP

Ensuite, regardons db.php, qui peut être trouvé en entier ici

php -i |grep "mongo"
php --re mongo
Copier après la connexion
Copier après la connexion

Le curseur MongoDB facilite la pagination. Ces méthodes de curseur peuvent être enchaînées de l'objet de curseur qui trouvent les rendements et les uns les autres. La combinaison de limite avec Skip rend la pagination facile. Ceux-ci peuvent également être combinés avec l'ordre. Par exemple.

$connection = new Mongo();
Copier après la connexion

index.php: les fichiers de modèle peuvent être trouvés dans le dossier de vue; comme index.view.php. Voici un exemple d'index.php:

$connecting_string =  sprintf('mongodb://%s:%d/%s', $hosts, $port,$database),
$connection=  new Mongo($connecting_string,array('username'=>$username,'password'=>$password));
Copier après la connexion

Ouvrez votre navigateur et accédez à http://duthien.dev/sitepoint/blog-mongodb. Il répertorie tous les articles actuels du blog:

Construire une application de blog simple avec MongoDB et PHP

single.php: Lorsque vous visualisez une seule page de publication (cliquez sur Lire la suite sur un post), vous regardez single.view.php dans le dossier des vues. Voici la logique de single.php:

$dbname = $connection->selectDB('dbname');
Copier après la connexion

Ce fichier reçoit le _ID de l'article en tant que paramètre HTTP Get. Nous invoquons la méthode FindOne () sur la collection d'articles, en envoyant la valeur _ID en tant que paramètre à la méthode. La méthode findOne () est utilisée pour récupérer un seul document. Voir la fonction getbyid () dans le fichier db.php

Construire une application de blog simple avec MongoDB et PHP

Entrez un nom et un e-mail arbitraires dans les cases d'entrée dans la section des commentaires, mettez également du texte dans la TextArea. Cliquez ensuite sur le bouton Enregistrer et la page se rechargera avec le commentaire que vous venez de publier. Voici à quoi ressemble comment.php:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
#
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Les commentaires pour un article sont stockés dans un champ de tableau des commentaires du nom du document. Chaque élément d'un commentaire est un document intégré qui contient plusieurs champs.

Conclusion

Dans cet article, nous avons couvert une introduction CRUD de base dans PHP avec MongoDB. Nous avons même créé une sorte de MVC très primitif dans le processus (voir l'application complète sur GitHub). C'est à vous d'utiliser un cadre approprié, d'implémenter l'authentification au-delà du simple authauteur HTTP utilisé ici et d'ajouter plus de fonctionnalités, mais les bases sont en place et vous pouvez pirater cette application de démonstration au contenu de votre cœur.

Pour plus d'informations sur MongoDB, consultez la documentation en ligne. Avez-vous apprécié cet article? Faites-nous savoir vos pensées!

Questions fréquemment posées (FAQ) sur la création d'une application de blog simple avec MongoDB et PHP

Qu'est-ce que MongoDB et pourquoi est-il utilisé dans la création d'une application de blog?

MongoDB est un programme de base de données orienté vers la plate-forme multiplateforme à source. Il est classé comme un programme de base de données NOSQL car il utilise des documents de type JSON avec des schémas facultatifs. MongoDB est utilisé dans la création d'une application de blog en raison de ses performances élevées, de sa haute disponibilité et de son évolutivité facile. Il fonctionne sur le concept de collections et de documents, ce qui facilite l'organisation et la gestion des données.

Comment PHP s'intègre-t-il à MongoDB dans la création d'une application de blog?

PHP est un usage général populaire Langue de script qui est particulièrement adaptée au développement Web. Il s'intègre à MongoDB via un pilote PHP, qui est une bibliothèque côté client qui fournit une abstraction API de haut niveau pour certaines des caractéristiques de MongoDB. Cela permet aux scripts PHP de communiquer avec les serveurs MongoDB et d'effectuer des opérations telles que l'interrogation et la mise à jour des données.

Quelles sont les conditions préalables à la création d'une application de blog avec MongoDB et PHP?

Pour créer une application de blog avec MongoDB et PHP, vous devez avoir une compréhension de base de PHP et MongoDB. Vous devez également installer PHP et MongoDB sur votre système. De plus, vous avez besoin d'un éditeur de texte pour rédiger votre code et un serveur Web pour héberger votre application.

Comment puis-je gérer l'authentification des utilisateurs dans mon application de blog?

L'authentification des utilisateurs dans une application de blog peut être manipulé à l'aide de sessions en PHP. Lorsqu'un utilisateur se connecte, une session est démarrée et les informations de l'utilisateur sont stockées dans les variables de session. Ces variables sont accessibles tout au long de la session de l'utilisateur, vous permettant de restreindre l'accès à certaines pages en fonction de l'état d'authentification de l'utilisateur.

Comment puis-je implémenter les opérations CRUD dans mon application de blog?

Les opérations CRUD (créer, lire, mettre à jour, supprimer) peuvent être implémentées dans une application de blog à l'aide de PHP et MongoDB. PHP fournit des fonctions pour interagir avec MongoDB, vous permettant de créer des documents (publications), de lire des documents, de mettre à jour des documents et de supprimer des documents. Le pilote MongoDB PHP fournit une API simple pour ces opérations.

Comment puis-je gérer les erreurs dans mon application de blog?

La gestion des erreurs dans une application de blog peut être effectuée en utilisant la gestion des erreurs intégrée de PHP fonctions. Ces fonctions vous permettent de définir des règles de gestion des erreurs personnalisées, de créer des gestionnaires d'erreurs personnalisés et de signaler les erreurs. Vous pouvez également enregistrer les erreurs à des fins de débogage.

Comment puis-je améliorer les performances de mon application de blog?

Les performances d'une application de blog peuvent être améliorées en optimisant vos requêtes MongoDB, en utilisant des index, et les données de mise en cache. Vous pouvez également améliorer les performances en optimisant votre code PHP, par exemple en utilisant des boucles et des fonctions efficaces, et en minimisant l'utilisation de variables globales.

Comment puis-je sécuriser mon application de blog?

Sécurité Dans une application de blog, peut être réalisée en implémentant l'authentification des utilisateurs, en désinfectant les entrées des utilisateurs pour empêcher les attaques d'injection SQL et en utilisant des connexions sécurisées (HTTPS). Vous devriez également garder vos installations PHP et MongoDB à jour pour bénéficier des derniers correctifs de sécurité.

Comment puis-je déployer mon application de blog?

Une application de blog peut être déployée en téléchargeant le PHP Fichiers et base de données MongoDB sur un serveur Web. Vous pouvez utiliser FTP ou un système de contrôle de version comme Git pour télécharger des fichiers. Vous devez également configurer votre serveur Web pour gérer les scripts PHP et vous connecter à votre base de données MongoDB.

Comment puis-je ajouter des fonctionnalités comme des commentaires et des likes à mon application de blog?

Fonctions telles que des commentaires et des likes Peut être ajouté à une application de blog en créant des collections supplémentaires dans votre base de données MongoDB pour stocker des commentaires et des likes. Vous pouvez ensuite utiliser PHP pour créer, lire, mettre à jour et supprimer des commentaires et des likes, et pour les associer à des messages spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal