ホームページ > バックエンド開発 > PHPチュートリアル > MongoDBとPHPを使用したシンプルなブログアプリを構築します

MongoDBとPHPを使用したシンプルなブログアプリを構築します

Joseph Gordon-Levitt
リリース: 2025-02-22 10:21:16
オリジナル
916 人が閲覧しました

MongoDBとPHPを使用したシンプルなブログアプリを構築します

キーテイクアウト

  • MongoDBは、パフォーマンスとスケーラビリティを向上させるドキュメント指向のNOSQLデータベースであり、コレクションやドキュメントを簡単に管理できるブログアプリケーションに最適です。
  • PHP MongoDBドライバーは、PHPアプリケーションをMongoDBに接続するために不可欠であり、PHPスクリプトから直接CRUD操作を可能にします。
  • ブログの管理者セクションのHTTP AUTHを使用して簡単なユーザー認証を実装できますが、より堅牢なアプリケーションの場合、包括的な認証フレームワークが推奨されます。
  • ブログアプリケーションは、コメントのための追加機能を備えたブログ投稿を管理するために基本的なCRUD操作を利用しています。
  • アプリケーション構造には、管理タスクとビュー用の個別のディレクトリとファイルが含まれており、フルスケールのフレームワークを使用してさらに開発できるMVCアーキテクチャの単純な形式を促進します。
  • はじめに
  • mongodbとphpを使用してブログを作成したい場合、この記事は次のように教えます。
mongodbデータベースに接続

コレクションにドキュメントを保存します

コレクションのクエリドキュメント

    範囲クエリを実行
  • ドキュメントを並べ替え、ドキュメントを更新し、コレクションから1つ以上のドキュメントを削除します
  • ブログアプリケーションを構築することを選択した理由は、基本的なCRUDアプリケーションであり、PHPおよびMongoDB Web開発への緩和に非常に適しているためです。単純なテキストボックスとボタンを使用してBootstrapを使用して、プレーンユーザーインターフェイスを構築します。 MongoDBデータベースはすべてのコンテンツを保存します。 GitHubから完全なソースをダウンロードして、こちらのデモフロントエンドを参照して、ユーザー名とパスワードを
  • duythien
  • mongodb
  • とは何ですか
  • 公式ウェブサイトによると、MongoDBは、高性能、高可用性、簡単なスケーラビリティを提供するドキュメントデータベースです。 MongoDBは、ドキュメント指向のNOSQLデータベースのグループに分類されます。 NOSQLデータベースの他のサブタイプについては、こちらを参照してください
mongodbの概念:データベース、コレクション、ドキュメント

データベース:MongoDBは、ほとんどのリレーショナルデータベースとまったく同じ方法でデータベースにデータをグループ化します。リレーショナルデータベースの経験がある場合は、これらを同じように考える必要があります。 RDBMSでは、データベースはテーブル、ストアドプロシージャ、ビューなどのセットです。 MongoDBでは、データベースは一連のコレクションです。 MongoDBデータベースには、1つ以上のコレクションが含まれています。たとえば、ブログという名前のブログアプリケーションのデータベースには、通常、コレクションの記事、著者、コメント、カテゴリなどがあります。
  • コレクション:コレクションはRDBMSテーブルに相当します。単一のデータベース内にコレクションが存在します。コレクションはスキーマを強制しません。コレクション内のドキュメントには、異なるフィールドを持つことができます。通常、コレクション内のすべてのドキュメントには、同様の目的または関連する目的があります。

  • ドキュメント:MongodbコレクションのレコードとMongodbのデータの基本単位。ドキュメントはJSONオブジェクトに類似していますが、BSONとして知られるよりタイプの豊富な形式でデータベースに存在します。ドキュメントには、一連のフィールドまたはキー価値ペアが含まれています。ドキュメントを考える最良の方法は、多次元配列としてです。配列には、値にマッピングされるキーのセット(document == array)があります。ドキュメントを参照してください
  • mongodb

    のインストール
  • MongoDBはほとんどのプラットフォームで実行され、32ビットと64ビットのアーキテクチャをサポートしています。 MongoDBは、バイナリとして、またはパッケージとして利用できます。生産環境では、64ビットのMongoDBバイナリを使用します。このセクションでは、Ubuntu LinuxとWindowsのインストールについて説明します。他のオペレーティングシステムについては、ドキュメントを参照してください。

    これは、MongoがUbuntu Linuxにインストールされる方法です。端子を開いて、次のように実行します

    次のコマンドを発行してリポジトリを更新し、Mongodbの最新バージョンをインストールしてください。

    完了して、Mongodbを正常にインストールしました。次のコマンドラインを介してMongodbを開始して停止します。

    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
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    スタートエラーの場合、次のコマンドを実行してみてください。

    sudo apt-get update
    sudo apt-get install mongodb-10gen
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    以下には、Windowsにインストールする方法について説明します

    MongoDB公式ウェブサイトのダウンロードページにアクセスしてください。 Windowsの下の最新の安定したリリースのダウンロードリンクをクリックしてください。

    ダウンロードが終了したら、抽出してc:に移動します。 MongoDBには、ファイルを保存するデータフォルダーが必要です。 MongoDB Data Directoryのデフォルトの場所はC:DataDBです。存在しない場合は、作成してください。
    sudo service mongodb start
    sudo service mongodb stop
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    mongodbを開始するには、コマンドプロンプト

    から実行します

    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    完了して、Mongodbを正常にインストールしました。次のコマンドラインを介してMongodbを開始して停止します。

    MongoDB

    のPHPドライバーのインストール

    MongoDBサーバーは、PHPではなく、現在のWebサーバーで既に動作するように構築されています。 PHPにMongoDBサーバーと話をさせるには、PHP-MongoDBドライバーが必要になります。これはPHP拡張ライブラリです。

    Linuxを使用している場合は、

    を使用して簡単にインストールします

    line拡張子= mongo.soをphp.ini構成に追加すると、行くのがいいです:
    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    Webサーバーを再起動し、コマンドラインを介して確認してください:
    net start MongoDB
    net stop  MongoDB
    
    ログイン後にコピー
    ログイン後にコピー

    Windowsにドライバーをインストールします

    apache(xampp)でphp 5.4を実行しているWindowsマシンにドライバーをインストールしてみてください:

    1. zipアーカイブhttps://github.com/mongodb/mongo-php-driver/downloadsをマシンにダウンロードして抽出します。
    2. 抽出されたフォルダーからphp_mongo.dllファイルをphp拡張ディレクトリ(c:xamppphpext)にコピーします。
    3. PHPインストール内にPHP.iniファイルを開き、次の行を追加します。
    4. ファイルを保存して閉じます。 xampを再起動します。
    5. テキストエディターを開き、次のコードを新しいファイルに追加します:、ファイルをApache Webサーバー(htdocs)のDocumentroot内にphpinfo.phpとして保存し、phpを開きますブラウザ内のスクリプト。 PHP情報にMongoが表示された場合、インストールは成功しました。
    6. php
    7. のMongo Web開発
    8. MongoDBデータベースサーバーへの接続
    9. PHPからMongoDBに接続することは、他のデータベースに接続することに非常に似ています。デフォルトのホストはlocalhost、デフォルトのポートは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
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    基本(crud操作)

    MongoDBは、データを読み取り、操作するための豊富なセマンティクスを提供します。 Crudは、Create、読み取り、更新、削除を表しています。これらの用語は、データベースとのすべての相互作用の基盤です。
    sudo apt-get update
    sudo apt-get install mongodb-10gen
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    コレクションの作成/選択

    コレクションの選択と作成は、データベースへのアクセスと作成に非常に似ています。コレクションが存在しない場合、それは作成されます:

    たとえば、
    sudo service mongodb start
    sudo service mongodb stop
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    これにより、私のブログにコレクション「投稿」が作成されます。

    ドキュメントの作成

    MongoDBでドキュメントを作成するのは簡単ではありません。配列を作成します。コレクションオブジェクトの挿入メソッドに渡します

    insert()メソッドは、コレクションにデータを保存します。 $ POSTアレイは、_IDという名前のフィールドを自動的に受信します。 save()メソッドを使用することもできます。これは、既存のレコードを更新するか、存在しない場合は新しいレコードを作成します。

    ドキュメントを読む
    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    コレクションからデータを取得するには、find()メソッドを使用して、コレクション内のすべてのデータを取得します。 FindOne()は、指定されたクエリ基準を満たすドキュメントが1つだけ返されます。次の例では、1つ以上のレコードを照会する方法を示します。

    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ドキュメントの更新

    コレクション内の既存のドキュメントまたはドキュメントを変更します。デフォルトでは、更新()メソッドは単一のドキュメントを更新します。マルチオプションがtrueに設定されている場合、メソッドはクエリ基準に一致するすべてのドキュメントを更新します。
    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
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    update()メソッドは2つのパラメーターを取ります。 1つ目は、更新するオブジェクトを記述する基準と、2番目のオブジェクトが一致するレコードを更新するオブジェクトです。また、オプションの配列を渡すことができる3番目のオプションパラメーターもあります。

    ミニブログ

    私たちが構築するプロジェクトの構造:

    sudo apt-get update
    sudo apt-get install mongodb-10gen
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    実際のPHPコードから始める前に、上記のようなファイルとフォルダーを作成する必要があります。

    config.php

    これは、データベースに接続する方法をアプリに伝える構成ファイルです。これは、ユーザーのデータベース名、ユーザー名、およびパスワードを定義して、そのデータベースにアクセスした場所です。

    ここで、paramaters userauthとpasswordauthを定義して、HTTP認証を介して管理者フォルダーを保護します。ここでは、HTTP Authを使用して、記事の中心的なテーマがMongodbに接続していることを確認しています。通常、ACLを使用して何らかのまともなフレームワークを使用してアクセス制御を構築します。

    app.php:
    sudo service mongodb start
    sudo service mongodb stop
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    admin

    これは、crudコードを含むフォルダーです。
    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    完全なファイルindex.phpについては、

    こちらを参照してください。上記では、クラスlayout.phpでビュー関数を使用しました。これは、dashboard.view.php。

    GETパラメーターステータスは、CRUDアクションに対応します。たとえば、ステータスが「作成」である場合:
    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    function View(「admin/create」、$ data)は、ユーザーが新しいブログ投稿のタイトル/コンテンツを書くことができるHTMLフォームを示しています。デフォルトでは、スクリプトに次のHTMLフォームが表示されます
    net start MongoDB
    net stop  MongoDB
    
    ログイン後にコピー
    ログイン後にコピー

    sudo pecl install mongo
    
    ログイン後にコピー

    次にDB.PHPを見てみましょう。

    sudo -i
    echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
    
    ログイン後にコピー
    Mongodbカーソルはページネーションを簡単にします。これらのカーソルメソッドは、リターンと互いを見つけるカーソルオブジェクトから接続できます。制限とスキップを組み合わせると、ページネーションが簡単になります。これらは順序と組み合わせることもできます。たとえば、

    MongoDBとPHPを使用したシンプルなブログアプリを構築します

    index.php:テンプレートファイルはビューフォルダーにあります。 index.view.phpなど。 index.php:

    の例は次のとおりです

    php -i |grep "mongo"
    php --re mongo
    
    ログイン後にコピー
    ブラウザを開き、http://duythien.dev/sitepoint/blog-mongodbに移動します。ブログの現在のすべての記事をリストしています:

    $connection = new Mongo();
    
    ログイン後にコピー

    single.php:1つの投稿ページを表示すると(投稿で[詳細を読む]」を表示すると、ビューフォルダーのsingle.view.phpをご覧ください。これがsingle.php:
    $connecting_string =  sprintf('mongodb://%s:%d/%s', $hosts, $port,$database),
    $connection=  new Mongo($connecting_string,array('username'=>$username,'password'=>$password));
    
    ログイン後にコピー
    のロジックです

    このファイルは、http getパラメーターとして記事の_idを受信します。記事コレクションにfindOne()メソッドを呼び出し、_ID値をメソッドにパラメーターとして送信します。 FindOne()メソッドは、単一のドキュメントを取得するために使用されます。ファイルdb.php

    の関数getbyid()を参照してください

    MongoDBとPHPを使用したシンプルなブログアプリを構築します

    コメントセクションの下の入力ボックスに任意の名前と電子メールを入力し、テキストにもテキストを入れます。次に、[保存]ボタンをクリックすると、ページが投稿されたコメントでリロードされます。これが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
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    記事のコメントは、ドキュメント名のコメントの配列フィールドに保存されます。コメントの各要素は、いくつかのフィールドを含む埋め込みドキュメントです。

    結論

    この記事では、Mongodbを使用したPHPへの基本的なCRUDの紹介について説明しました。プロセスで一種の非常に原始的なMVCを作成しました(GitHubの完全なアプリを参照)。適切なフレームワークを使用し、ここで使用される単純なHTTP認証を超えて認証を実装し、より多くの機能を追加するのはあなた次第ですが、基本が整っており、このデモアプリケーションをハートのコンテンツにハッキングできます。

    MongoDBの詳細については、オンラインドキュメントをご覧ください。この記事を楽しんでいましたか?あなたの考えを教えてください!

    MongoDBとPHP

    を使用してシンプルなブログアプリの構築に関するよくある質問(FAQ)

    mongodbとは何ですか?ブログアプリの構築に使用されるのはなぜですか?

    mongodbは、ソース利用可能なクロスプラットフォームドキュメント指向のデータベースプログラムです。 JSONのようなドキュメントをオプションのスキーマを使用して使用するため、NOSQLデータベースプログラムとして分類されます。 MongoDBは、高性能、高可用性、簡単なスケーラビリティのため、ブログアプリの構築に使用されます。コレクションとドキュメントの概念に基づいて機能し、データの整理と管理が容易になります。特にWeb開発に適したスクリプト言語。 MongoDBのいくつかの機能に高レベルのAPI抽象化を提供するクライアント側のライブラリであるPHPドライバーを介してMongoDBと統合されます。これにより、PHPスクリプトはMongoDBサーバーと通信し、データのクエリや更新などの操作を実行できます。 MongodbとPHP、PHPとMongodbを基本的に理解する必要があります。また、システムにPHPとMongoDBをインストールする必要があります。さらに、ブログアプリでユーザー認証を処理するには、コードを作成するためのテキストエディターとアプリをホストするためのWebサーバーが必要です。 PHPのセッションを使用して処理されます。ユーザーがログインすると、セッションが開始され、ユーザーの情報がセッション変数に保存されます。これらの変数は、ユーザーのセッション全体でアクセスでき、ユーザーの認証ステータスに基づいて特定のページへのアクセスを制限できます。ブログアプリにCRUD操作を実装するにはどうすればよいですか?

    CRUD操作(作成、読み取り、更新、削除)は、PHPとMongoDBを使用してブログアプリに実装できます。 PHPは、MongoDBと対話するための関数を提供し、ドキュメント(投稿)を作成し、ドキュメントを読み取り、ドキュメントを更新し、ドキュメントを削除することができます。 MongoDB PHPドライバーは、これらの操作にシンプルなAPIを提供します。

    ブログアプリでエラーを処理するにはどうすればよいですか?関数。これらの機能により、カスタムエラー処理ルールを定義し、カスタムエラーハンドラーを作成し、エラーをレポートできます。また、デバッグの目的でエラーを記録することもできます。

    ブログアプリのパフォーマンスを改善するにはどうすればよいですか?

    ブログアプリのパフォーマンスは、インデックスを使用してMongoDBクエリを最適化することで改善できます。キャッシュデータ。また、効率的なループや関数を使用し、グローバル変数の使用を最小限に抑えることにより、PHPコードを最適化することでパフォーマンスを向上させることもできます。ブログアプリでは、ユーザー認証を実装し、ユーザー入力をサニタイズしてSQLインジェクション攻撃を防止し、安全な接続(HTTPS)を使用することで達成できます。また、最新のセキュリティパッチの恩恵を受けるために、PHPとMongoDBのインストールを最新に保ちます。 WebサーバーへのファイルとMongoDBデータベース。 FTPまたはGITなどのバージョン制御システムを使用して、ファイルをアップロードできます。また、PHPスクリプトを処理してMongoDBデータベースに接続するようにWebサーバーを構成する必要があります。コメントやいいねを保存するために、MongoDBデータベースに追加のコレクションを作成することで、ブログアプリに追加できます。その後、PHPを使用して、コメントやいいねを作成、読み取り、更新、削除し、特定の投稿に関連付けることができます。

    以上がMongoDBとPHPを使用したシンプルなブログアプリを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート