Wenn Sie ein Blog mit MongoDB und PHP erstellen möchten, lehrt Sie in diesem Artikel:
Der Grund, warum ich eine Blog -Anwendung erstellt habe, liegt darin, dass es sich um eine grundlegende CRUD -Anwendung handelt und sehr geeignet ist, um in PHP- und MongoDB -Webentwicklung einzubeziehen. Wir erstellen eine einfache Benutzeroberfläche mit Bootstrap mit einfachen Textboxen und Schaltflächen. Eine MongoDB -Datenbank speichert alle Inhalte. Sie können die vollständige Quelle von Github herunterladen, hier eine Demo -Frontend sehen und das Backend der Demo -App mit dem Benutzernamen und dem Passwort aus versuchen Duythien .
Laut der offiziellen Website MongoDB handelt es sich um eine Dokumentdatenbank, die eine hohe Leistung, hohe Verfügbarkeit und einfache Skalierbarkeit bietet. MongoDB fällt in die Gruppe von dokumentenorientierten NoSQL-Datenbanken. Für andere Subtypen von NoSQL -Datenbanken siehe hier.
Datenbank: MongoDB -Daten gruppieren Daten in Datenbanken genauso wie die meisten relationalen Datenbanken. Wenn Sie Erfahrung mit relationalen Datenbanken haben, sollten Sie diese genauso vorstellen. In einem RDBMS ist eine Datenbank eine Reihe von Tabellen, gespeicherte Prozeduren, Ansichten usw. In MongoDB ist eine Datenbank eine Reihe von Sammlungen. Eine MongoDB -Datenbank enthält eine oder mehrere Sammlungen. Beispielsweise kann eine Datenbank für eine Blogging -Anwendung mit dem Namen Blog in der Regel die Sammlungsartikel, Autoren, Kommentare, Kategorien usw. enthalten.
Sammlung: Eine Sammlung entspricht einer RDBMS -Tabelle. In einer einzelnen Datenbank existiert eine Sammlung. Sammlungen erzwingen kein Schema. Dokumente innerhalb einer Sammlung können unterschiedliche Felder haben. Typischerweise haben alle Dokumente in einer Sammlung einen ähnlichen oder verwandten Zweck.
Dokumente: Ein Datensatz in einer MongoDB -Sammlung und die grundlegende Dateneinheit in MongoDB. Dokumente sind analog zu JSON-Objekten, existieren jedoch in der Datenbank in einem als BSON bezeichneten Format, der als BSON bezeichnet wird. Ein Dokument enthält eine Reihe von Feldern oder Schlüsselwertpaaren. Der beste Weg, um sich ein Dokument vorzustellen, ist ein mehrdimensionales Array. In einem Array haben Sie eine Reihe von Schlüssel, die auf Werte zugeordnet sind (Dokument == Array). Siehe Dokumente.
mongoDB läuft auf den meisten Plattformen und unterstützt 32-Bit- und 64-Bit-Architekturen. MongoDB ist als binär oder als Paket erhältlich. Verwenden Sie in Produktionsumgebungen 64-Bit-MongoDB-Binärdateien. In diesem Abschnitt wird die Installation unter Ubuntu Linux und Windows behandelt. Für andere Betriebssysteme finden Sie in der Dokumentation.
So wird Mongo auf Ubuntu Linux installiert. Öffnen Sie das Terminal und führen Sie Folgendes aus:
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
Geben Sie nun den folgenden Befehl aus, um Ihr Repository zu aktualisieren und die neueste stabile Version von MongoDB zu installieren:
sudo apt-get update sudo apt-get install mongodb-10gen
fertig, Sie haben MongoDB erfolgreich installiert. Starten Sie jetzt den Service mongoDB über die Befehlszeile unten.
sudo service mongodb start sudo service mongodb stop
Im Falle eines Startfehlers, um den folgenden Befehl auszuführen:
sudo mongod --fork --logpath /var/log/mongodb/mongodb.log #or sudo mongod -f /etc/mongodb.conf
Im Folgenden wird beschrieben, wie Sie es unter Windows installieren:
Besuchen Sie die Downloads -Seite auf der offiziellen Website von MongoDB. Klicken Sie auf den Download -Link für die neueste stabile Version unter Windows.
Nach Abschluss des Downloads extrahieren und bewegen Sie es in C :. MongoDB benötigt einen Datenordner, in dem die Dateien gespeichert werden können. Der Standardort für das MongoDB -Datenverzeichnis ist C: datAdb. Wenn es nicht existiert, erstellen Sie es.
Um MongoDB zu starten, führen Sie aus der Eingabeaufforderung
ausC:\> cd \mongodb\bin C:\mongodb\bin> mongod
fertig, Sie haben MongoDB erfolgreich installiert. Starten Sie jetzt den Service mongoDB über die Befehlszeile unten.
net start MongoDB net stop MongoDB
Der MongoDB -Server ist so erstellt, dass er bereits mit Ihrem aktuellen Webserver arbeitet, jedoch nicht mit PHP. Um PHP mit dem MongoDB-Server zu sprechen, benötigen wir den Php-MongoDB-Treiber. Es ist eine PHP -Erweiterungsbibliothek.
Wenn Sie Linux verwenden, installieren Sie es einfach über:
sudo pecl install mongo
Fügen Sie die Zeilenerweiterung hinzu = mongo.so zu Ihrer Php.ini
sudo -i echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
php -i |grep "mongo" php --re mongo
Eine Verbindung zu MongoDB von PHP ist der Verbindung zu einer anderen Datenbank sehr ähnlich. Der Standardhost ist Localhost und der Standardport ist 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
Verbindung zu einem Remote -Host mit optionalem benutzerdefiniertem Port und Auth:
sudo apt-get update sudo apt-get install mongodb-10gen
Auswählen einer Datenbank
sudo service mongodb start sudo service mongodb stop
Die Grundlagen (CRUD Operations)
Erstellen/Auswählen einer Sammlung
sudo mongod --fork --logpath /var/log/mongodb/mongodb.log #or sudo mongod -f /etc/mongodb.conf
C:\> cd \mongodb\bin C:\mongodb\bin> mongod
Erstellen eines Dokuments
net start MongoDB net stop MongoDB
weiter
Lesen eines Dokuments
sudo pecl install mongo
Aktualisieren eines Dokuments
verändert ein vorhandenes Dokument oder Dokumente in einer Sammlung. Standardmäßig aktualisiert die Methode update () ein einzelnes Dokument. Wenn die Multi -Option auf TRUE eingestellt ist, aktualisiert die Methode alle Dokumente, die den Abfragebrichen entsprechen.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
Die Methode update () nimmt zwei Parameter vor. Das erste sind Kriterien, um die zu aktualisierenden Objekte und das zweite das Objekt zu beschreiben, mit dem die Übereinstimmungsdatensätze aktualisiert werden sollen. Es gibt auch einen dritten optionalen Parameter, bei dem Sie eine Reihe von Optionen übergeben können.
Die Struktur des Projekts werden wir bauen:
sudo apt-get update sudo apt-get install mongodb-10gen
Bevor wir mit unserem tatsächlichen PHP -Code beginnen, müssen wir unsere Dateien und Ordner wie oben erstellen.
Dies ist Ihre Konfigurationsdatei, die unserer App mitteilt, wie sie eine Verbindung zur Datenbank herstellen soll. Hier haben Sie den Datenbanknamen, den Benutzernamen und das Kennwort des Benutzers definiert, um auf diese Datenbank zuzugreifen:
sudo service mongodb start sudo service mongodb stop
, wo wir Paramater UserAuth und PasswordAuth definieren, um den Administratorordner über die HTTP -Authentifizierung zu schützen. Wir verwenden hier HTTP -Authu -Auth, da das zentrale Thema des Artikels eine Verbindung zu MongoDB herstellt. Sie würden normalerweise eine Art anständiges Framework mit ACL verwenden, um in der Zugriffskontrolle zu erstellen.
app.php:
sudo mongod --fork --logpath /var/log/mongodb/mongodb.log #or sudo mongod -f /etc/mongodb.conf
Dies ist der Ordner, der den CRUD -Code enthält.
C:\> cd \mongodb\bin C:\mongodb\bin> mongod
für den vollständigen Datei index.php siehe hier. Oben habe ich die Ansichtsfunktion im Klassenlayout.php verwendet, mit dem das Dashboard.View.php.
automatisch geladen wirdnet start MongoDB net stop MongoDB
Der Status des GET -Parameters entspricht einer CRUD -Aktion. Zum Beispiel, wenn der Status "erstellen" ist:
sudo pecl install mongo
Funktionsansicht ("admin/create", $ data) zeigt ein HTML-Formular an, in dem der Benutzer den Titel/Inhalt eines neuen Blog-Beitrags schreiben kann, oder es speichert die vom Benutzer eingerichteten Daten an MongoDB. Standardmäßig zeigt das Skript das folgende HTML -Formular an:
sudo -i echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
Schauen wir uns als nächstes DB.PHP an, der hier vollständig gefunden werden kann
php -i |grep "mongo" php --re mongo
Der MongoDB Cursor erleichtert die Pagination. Diese Cursormethoden können von dem Cursorobjekt gekettet werden, das Rücksendungen und einander finden. Das Kombinieren der Limit mit Skip erleichtert die Pagination. Diese können auch mit der Bestellung kombiniert werden. Zum Beispiel.
$connection = new Mongo();
index.php: Vorlagendateien finden Sie im Ordner "Ansicht". wie index.view.php. Hier ist ein Beispiel für Index.php:
$connecting_string = sprintf('mongodb://%s:%d/%s', $hosts, $port,$database), $connection= new Mongo($connecting_string,array('username'=>$username,'password'=>$password));
Öffnen Sie Ihren Browser und navigieren Sie zu http://duythien.dev/sitepoint/blog-mongodb. Es listet alle aktuellen Artikel im Blog auf:
Single.php: Wenn Sie eine einzelne Beitragsseite anzeigen (klicken Sie in einem Beitrag mehr lesen), sehen Sie im Ordner "Ansicht" Single.View.php. Hier ist die Logik von Single.php:
$dbname = $connection->selectDB('dbname');
Diese Datei empfängt die _id des Artikels als HTTP -Parameter. Wir rufen die FindOne () -Methode in der Artikelsammlung auf und senden den _id -Wert als Parameter an die Methode. Die FindOne () -Methode wird verwendet, um ein einzelnes Dokument abzurufen. Siehe Funktion getbyId () in Datei db.php
Geben Sie einen beliebigen Namen und eine E -Mail in die Eingabefelden im Abschnitt Kommentare ein. Geben Sie auch einen Text in die textarea ein. Klicken Sie dann auf die Schaltfläche Speichern und die Seite wird mit dem gerade geposteten Kommentar neu geladen. So sieht der comment.php aus:
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
Kommentare für einen Artikel werden in einem Array -Feld der Dokumentnamen -Kommentare gespeichert. Jedes Element eines Kommentars ist ein eingebettetes Dokument, das mehrere Felder enthält.
In diesem Artikel haben wir eine grundlegende CRUD -Einführung in PHP mit MongoDB behandelt. Wir haben sogar eine Art sehr primitive MVC erstellt (siehe vollständige App auf GitHub). Es liegt an Ihnen, ein ordnungsgemäßes Framework zu verwenden, Authentifizierung über das hier verwendete einfache HTTP -Auth zu implementieren und weitere Funktionen hinzuzufügen.
Weitere Informationen zu MongoDB finden Sie in der Online -Dokumentation. Hat Ihnen dieser Artikel gefallen? Lassen Sie uns Ihre Gedanken wissen!häufig gestellte Fragen (FAQs) zum Erstellen einer einfachen Blog -App mit MongoDB und PHP
Wie kann ich die Leistung meiner Blog -App verbessern? und Daten zwischengeschnitten. Sie können die Leistung auch verbessern, indem Sie Ihren PHP -Code optimieren, beispielsweise durch effiziente Schleifen und Funktionen und die Verwendung der Verwendung globaler Variablen. In einer Blog -App kann durch die Implementierung der Benutzerauthentifizierung, die Bereinigung der Benutzereingaben erreicht werden, um SQL -Injektionsangriffe zu verhindern und sichere Verbindungen (HTTPs) zu verhindern. Sie sollten auch Ihre Php- und MongoDB -Installationen auf dem neuesten Stand halten, um von den neuesten Sicherheitspatches zu profitieren.
Das obige ist der detaillierte Inhalt vonErstellen einer einfachen Blog -App mit MongoDB und PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!