Maison >développement back-end >tutoriel php >Construire une application de blog simple avec MongoDB et PHP
Si vous souhaitez créer un blog à l'aide de MongoDB et PHP, cet article vous apprendra à:
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 .
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.
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.
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.
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.
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
é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
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
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
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
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
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
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
Redémarrez votre serveur Web et vérifiez via la ligne de commande:
php -i |grep "mongo" php --re mongo
Essayons d'installer le pilote sur une machine Windows exécutant PHP 5.4 sur Apache (XAMPP):
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
Connexion à un hôte distant avec un port personnalisé en option et un auth:
sudo apt-get update sudo apt-get install mongodb-10gen
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
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.
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
Par exemple, cela crée la collection «publications» dans mon blog:
C:\> cd \mongodb\bin C:\mongodb\bin> mongod
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
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.
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
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
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.
La structure du projet que nous allons construire:
sudo apt-get update sudo apt-get install mongodb-10gen
Avant de commencer avec notre code PHP réel, nous devons créer nos fichiers et dossiers comme ci-dessus.
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
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
C'est le dossier qui contient le code crud.
C:\> cd \mongodb\bin C:\mongodb\bin> mongod
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
L'état du paramètre GET correspond à une action crud. Par exemple, lorsque le statut est «Créer»:
sudo pecl install mongo
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
Ensuite, regardons db.php, qui peut être trouvé en entier ici
php -i |grep "mongo" php --re mongo
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();
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));
Ouvrez votre navigateur et accédez à http://duthien.dev/sitepoint/blog-mongodb. Il répertorie tous les articles actuels du blog:
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');
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
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
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.
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!
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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!