首页 > 后端开发 > php教程 > 使用MongoDB和PHP构建一个简单的博客应用

使用MongoDB和PHP构建一个简单的博客应用

Joseph Gordon-Levitt
发布: 2025-02-22 10:21:16
原创
920 人浏览过

使用MongoDB和PHP构建一个简单的博客应用

钥匙要点

  • > mongoDB是一个面向文档的NOSQL数据库,可增强性能和可伸缩性,使其非常适合可以轻松管理集合和文档的博客应用程序。
  • php mongodb驱动程序对于将PHP应用程序连接到MongoDB至关重要,直接从PHP脚本进行CRUD操作。
  • >可以使用HTTP Auth对博客的管理部分实现简单的用户身份验证,尽管对于更强大的应用程序,建议使用全面的身份验证框架。
  • >博客应用程序利用基本的CRUD操作来管理博客文章,并具有其他评论功能,所有功能都存储在MongoDB Collections中。
  • 应用程序结构包括用于管理任务和视图的单独目录和文件,促进了一种简单的MVC架构形式,可以使用全尺度框架进一步开发。
  • 简介
  • 如果您想使用MongoDB和PHP创建博客,则本文将教您:>

连接到mongoDB数据库

>在集合中保存文档

    >集合中的查询文档
  • >执行范围查询
  • 排序文档,更新文档,从集合中删除一个或多个文档
  • 我之所以选择构建博客应用程序的原因是因为它是一个基本的CRUD应用程序,非常适合放松PHP和MongoDB Web开发。我们将使用带有简单文本框和按钮的Bootstrap构建一个普通的用户界面。 MongoDB数据库将存储所有内容。您可以从GitHub下载完整源,请参阅此处的演示前端,然后尝试使用演示应用程序的后端,并使用用户名和密码为
  • duythien
  • 什么是mongodb
根据官方网站,MongoDB是一个文档数据库,可提供高性能,可用性和易于可伸缩性。 MongoDB属于面向文档的NOSQL数据库。有关NOSQL数据库的其他子类型,请参见此处。

> > mongoDB概念:数据库,收集和文档>

数据库:MongoDB以与大多数关系数据库相同的方式将数据分组到数据库中。如果您对关系数据库有任何经验,则应以相同的方式考虑这些。在RDBMS中,数据库是一组表,存储过程,视图等。在MongoDB中,数据库是一组集合。 MongoDB数据库包含一个或多个集合。例如,名为博客的博客应用程序的数据库通常可能具有收藏文章,作者,评论,类别等。
  • 集合:集合等效于RDBMS表。一个数据库中存在一个集合。收集不执行模式。集合中的文档可以具有不同的字段。通常,集合中的所有文档都有相似或相关的目的。

  • 文档:MongoDB集合中的记录和MongoDB中数据的基本单位。文档类似于JSON对象,但在数据库中以更富特的格式存在于数据库中,称为BSON。文档包含一组字段或键值对。思考文档的最佳方法是作为多维阵列。在数组中,您有一组键,将映射到值(document == array)。请参阅文档。
  • >安装mongodb MongoDB在大多数平台上运行,并支持32位和64位体系结构。 MongoDB可作为二进制或包裹可用。在生产环境中,使用64位MongoDB二进制文件。本节将涵盖Ubuntu Linux和Windows上的安装。对于其他操作系统,请参阅他们的文档。

    这是蒙哥安装在Ubuntu Linux上的方式。打开终端并执行以下操作:

    现在发布以下命令以更新您的存储库并安装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
    
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    完成,您已经成功安装了MongoDB。现在,通过下面的命令行启动和停止服务MongoDB。

    >
    sudo apt-get update
    sudo apt-get install mongodb-10gen
    
    登录后复制
    登录后复制
    登录后复制
    如果开始错误尝试运行以下命令:>>>>>

    以下描述了如何在Windows上安装它:
    sudo service mongodb start
    sudo service mongodb stop
    
    登录后复制
    登录后复制
    登录后复制

    >前往MongoDB官方网站上的下载页面。单击Windows下的最新稳定版本的下载链接。

    > 下载完成后,提取并将其移至c:。 MongoDB需要一个数据文件夹来存储其文件。 MongoDB数据目录的默认位置是C:DatadB。如果不存在,请创建它。
    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    登录后复制
    登录后复制
    登录后复制

    启动mongodb,从命令提示符

    执行

    完成,您已经成功安装了MongoDB。现在,通过下面的命令行启动和停止服务MongoDB。

    >

    >安装MongoDB

    的PHP驱动程序
    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    登录后复制
    登录后复制
    登录后复制
    > MongoDB服务器构建是为了与您当前的Web服务器一起使用,但不能使用PHP。要与MongoDB服务器进行PHP通话,我们将需要PHP-MongoDB驱动程序。这是一个PHP扩展库。

    如果您使用Linux轻松通过:
    net start MongoDB
    net stop  MongoDB
    
    登录后复制
    登录后复制
    登录后复制
    来安装它

    >添加行扩展名= mongo。

    >重新启动您的Web服务器,并通过命令行验证:

    sudo pecl install mongo
    
    登录后复制
    登录后复制
    >在Windows上安装驱动程序

    >让我们尝试在Apache(XAMPP)上运行PHP 5.4的Windows计算机上安装驱动程序:
    sudo -i
    echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
    
    登录后复制
    登录后复制
    1. >下载zip存档https://github.com/mongodb/mongo-php-driver/downloads在您的机器上并提取。
    2. >将php_mongo.dll文件从提取的文件夹复制到php扩展目录(c:xamppphpext)。
    3. >打开PHP安装内的php.ini文件,并添加以下行:Extension = php_mongo.dll
    4. >保存文件并将其关闭。重新启动Xamp。
    5. >打开您的文本编辑器,然后将以下代码添加到新文件中:,将文件保存为phpinfo.php,在Apache Web服务器(HTDOC)的DocumentRoot内部,并打开PHP浏览器中的脚本。如果您在PHP信息中看到Mongo,则安装成功。
    6. >
    >带有php

    的mongo Web开发

    连接到MongoDB数据库服务器

    从PHP连接到MongoDB的

    >与连接到任何其他数据库非常相似。默认主机是localhost,默认端口为27017。>

    >连接使用可选自定义端口和auth的远程主机:
    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
    
    登录后复制
    登录后复制
    登录后复制

    >建立数据库服务器连接后,我们将使用它来访问数据库。定义的方法是:

    基础知识(crud操作)
    sudo service mongodb start
    sudo service mongodb stop
    
    登录后复制
    登录后复制
    登录后复制

    > MongoDB提供了丰富的语义,用于阅读和操纵数据。 CRUD代表创建,阅读,更新和删除。这些术语是与数据库所有交互的基础。

    >

    创建/选择集合

    选择和创建集合与访问和创建数据库非常相似。如果一个集合不存在,则将创建:

    >

    例如,这是在我的博客中创建“帖子”的集合:>

    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    登录后复制
    登录后复制
    登录后复制
    创建文档

    在MongoDB中创建文档并不容易。创建一个数组。将其传递到集合对象上的插入方法中

    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    登录后复制
    登录后复制
    登录后复制
    > insert()方法将数据存储在集合中。 $ post Array自动接收一个名为_id的字段,该字段是插入的BSON文档的自动化唯一objectid。您还可以使用save()方法,该方法已升级 - 更新现有记录,或者如果不存在,则创建新记录。

    >

    阅读文档

    要从集合中获取数据,我使用find()方法,该方法获取集合中的所有数据。 FindOne()仅返回一个满足指定查询标准的文档。以下示例将向您展示如何查询一个或多个记录。
    net start MongoDB
    net stop  MongoDB
    
    登录后复制
    登录后复制
    登录后复制
    >

    更新文档

    修改集合中的现有文档或文档。默认情况下,update()方法更新一个文档。如果将多选项设置为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()方法采用两个参数。第一个是描述要更新对象的标准,第二个是更新匹配记录的对象。还有第三个可选参数,您可以在其中传递一系列选项。

    >

    mini博客

    我们将要构建的项目的结构:

    sudo apt-get update
    sudo apt-get install mongodb-10gen
    
    登录后复制
    登录后复制
    登录后复制

    在我们从实际的PHP代码开始之前,我们需要创建像上面的文件和文件夹。

    config.php

    这是您的配置文件,它告诉我们的应用如何连接到数据库。这是您定义了用户的数据库名称,用户名和密码以访问该数据库的地方:

    sudo service mongodb start
    sudo service mongodb stop
    
    登录后复制
    登录后复制
    登录后复制
    我们在哪里定义paramaters userauth和passwordAuth以通过HTTP身份验证保护管理文件夹。我们在此处使用HTTP Auth,以简单起见,因为本文的中心主题是连接到MongoDB的 - 通常,您通常会使用ACL使用某种体面的框架来构建访问控制。

    > app.php:

    admin
    sudo mongod --fork --logpath /var/log/mongodb/mongodb.log
    #or
    sudo mongod -f /etc/mongodb.conf
    
    登录后复制
    登录后复制
    登录后复制

    这是包含CRUD代码的文件夹。

    >有关完整文件index.php的信息,请参见此处。在上面,我使用了类Layout.php中的视图函数,该函数将自动加载dashboard.view.php。

    C:\> cd \mongodb\bin
    C:\mongodb\bin> mongod
    
    登录后复制
    登录后复制
    登录后复制

    GET参数状态对应于CRUD动作。例如,当状态为“创建”时:

    net start MongoDB
    net stop  MongoDB
    
    登录后复制
    登录后复制
    登录后复制

    >函数视图('admin/create',$ data)显示了一个HTML表单,用户可以在其中编写新博客文章的标题/内容,或将用户删除的数据保存到MongoDB。默认情况下,脚本显示以下html表单:

    sudo pecl install mongo
    
    登录后复制
    登录后复制

    sudo -i
    echo 'extension=mongo.so' >> /etc/php5/apache2/php.ini
    
    登录后复制
    登录后复制

    接下来,让我们看一下db.php,可以在这里完整找到使用MongoDB和PHP构建一个简单的博客应用>

    php -i |grep "mongo"
    php --re mongo
    
    登录后复制
    index.php:模板文件可以在View文件夹中找到;例如index.view.php。这是index.php的示例:

    >

    $connection = new Mongo();
    
    登录后复制
    >打开浏览器并导航到http://duythien.dev/sitepoint/blog-mongodb。它列出了博客中的所有当前文章:

    $connecting_string =  sprintf('mongodb://%s:%d/%s', $hosts, $port,$database),
    $connection=  new Mongo($connecting_string,array('username'=>$username,'password'=>$password));
    
    登录后复制

    > single.php:当您查看单个帖子页面(单击帖子上的更多信息)时,您正在查看views文件夹中的single.view.php。这是single.php的逻辑:

    使用MongoDB和PHP构建一个简单的博客应用

    此文件作为HTTP GET参数接收文章的_id。我们在文章集合中调用FindOne()方法,将_id值作为参数发送到该方法。 FindOne()方法用于检索单个文档。请参阅文件db.php

    中的function 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的基本介绍。我们甚至在此过程中创建了一种非常原始的MVC(请参阅GitHub上的完整应用)。您必须使用适当的框架,在此处使用的简单HTTP AUTH之外实现身份验证,并添加更多功能,但是基础知识已经到位,您可以在此演示应用程序中删除此演示应用程序的内容。

    >

    有关MongoDB的更多信息,请查看在线文档。您喜欢这篇文章吗?让我们知道您的想法!

    >使用MongoDB和PHP

    构建一个简单的博客应用程序的常见问题(常见问题解答)

    什么是mongodb,为什么它用于构建博客应用程序? mongoDB是源可用的跨平台跨平台数据库计划。它被归类为NOSQL数据库程序,因为它使用具有可选模式的类似JSON的文档。 MongoDB由于其高性能,高可用性和易于可扩展性而用于构建博客应用程序。它在收集和文档的概念上起作用,使组织和管理数据变得更容易。

    > PHP如何与MongoDB集成在创建博客应用程序中?特别适合Web开发的脚本语言。它通过PHP驱动程序与MongoDB集成,该驱动程序是一个客户端库,为MongoDB的某些功能提供了高级API抽象。这允许PHP脚本与MongoDB服务器进行通信并执行诸如查询和更新数据之类的操作。

    >

    >使用MongoDB和PHP构建博客应用程序的先决条件是什么? MongoDB和PHP,您需要对PHP和MongoDB有基本的了解。您还需要在系统上安装PHP和MongoDB。此外,您还需要一个文本编辑器来编写代码和一个Web服务器来托管您的应用。

    我如何在博客应用程序中处理用户身份验证?使用PHP中的会话来处理。当用户登录时,启动了会话,并且用户的信息存储在会话变量中。这些变量可以在整个用户的会话中访问,从而使您可以根据用户的身份验证状态限制对某些页面的访问。

    >

    >如何使用PHP和MongoDB在博客应用中实现我的博客应用中的CRUD操作? PHP提供了与MongoDB进行交互的功能,使您可以创建文档(帖子),读取文档,更新文档和删除文档。 MongoDB php驱动程序为这些操作提供了一个简单的API。

    >

    如何在博客应用中处理错误?

    >在博客应用程序中可以使用PHP的内置错误处理来完成错误处理。功能。这些功能允许您定义自定义错误处理规则,创建自定义错误处理程序并报告错误。您还可以为调试目的记录错误。

    >

    如何改善博客应用程序的性能?

    >可以通过使用索引,索引,,可以通过优化您的mongoDB查询来提高博客应用程序的性能。和缓存数据。您还可以通过优化您的PHP代码来提高性能,例如使用有效的循环和功能,并最大程度地减少全局变量的使用。

    如何保护我的博客应用程序?在博客应用程序中,可以通过实现用户身份验证,对用户输入进行消毒以防止SQL注入攻击以及使用安全连接(HTTPS)来实现。您还应该使您的PHP和MongoDB安装保持最新状态,以从最新的安全补丁中受益。

    >

    >我如何部署我的博客应用程序?

    >可以通过上传PHP来部署博客应用程序文件和MongoDB数据库到Web服务器。您可以使用FTP或像Git这样的版本控制系统上传文件。您还需要配置您的Web服务器来处理PHP脚本并连接到MongoDB数据库。

    >如何在我的博客应用程序中添加诸如注释和喜欢的功能?

    可以通过在MongoDB数据库中创建其他收藏来存储评论和喜欢来添加到博客应用程序中。然后,您可以使用PHP来创建,读取,更新和删除评论和喜欢,并将它们与特定帖子相关联。

    以上是使用MongoDB和PHP构建一个简单的博客应用的详细内容。更多信息请关注PHP中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    作者最新文章
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板