Docker PHP 入门实践(三) 在本教程的其余部分,我们将基于 ThinkPHP 框架完成一个天气查询的应用 。使用 天气查询-API文档-开发指南-Web服务 API | 高德地图API 的接口来实现我们的功能 。把查询数据缓存到 MySql 中,这样就不用每次频繁的请求第三方的接口了(有请求次数限制)
选择高德开放平台-天气查询 API 主要是因为它是免费的 。当然你也可以使用其他的第三方天气查询接口,看个人喜好 。
该应用是一个非常简单的 REST API 应用,主要实现两个接口 。
在我们进行应用编码之前 , 首先使用 Docker 安装并运行 ThinkPHP
ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的 。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性 。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。
这就是为什么我选择它作为本教程的教学框架 。我不想让你因为一个框架而放弃,但我也不想从头开始建立所有的东西,因为该教程的重点是Docker,而不是我们的PHP应用 。
用Docker 创建ThinkPHP 应用 实际上比用本地配置PHP环境所需的操作少 。并且为我们还需要使用 Composer,多亏了Docker,我们甚至不需要在主机上安装它 。
首先打开你的终端,创建一个项目目录 。
并进入到该目录中
现在使用[官方Composer Docker镜像]()安装 ThinkPHP。
如果你查看weather-app/目录,你会看到 ThinkPHP 6 的项目目录,如下所示:
我们的 docker 运行命令与第二章中的命令相似,但我们使用了不同的镜像 。我们没有使用运行hello.php 脚本的 PHP 镜像 , 而是使用了一个 Composer 镜像 。让我们来看看有什么变化 。
项目创建完成后 , 我们需要添加几个路由 URL 和 Controller 文件。让我们打开weather-app目录下的app/controller, 然后新建Weather.php文件,内容如下:
然后打开weather-app目录下的app/route, 在app.php文件中追加如下内容:
现在我们可以在 Docker 容器中运行我们的应用程序,只是为了验证我们的程序是否运行正常,因为我们只添加了两个路由 URL 。打开命令行,运行 。
现在 , 在浏览器中打开,你应该看到一个空页面,上面有以下文字:
那么恭喜你 , 你刚刚已经成功地在 Docker 中运行了你的第一个 ThinkPHP 应用程序 。
这次我们使用的docker run命令与我们用来运行 hello.php 脚本 和composer create-project ...的两个命令不同 。原因是这次我们想获得包含 Apache 的最新版本的PHP,这样我们就可以为我们的 Web 应用提供服务 。让我们更详细地了解新增的命令部分 。
你可以通过向终端发送一个 "中断 "信号来停止和退出终端 。在 windows 上,这可以通过按Ctrl和按c来实现 。
运行你的新网络应用程序的另一个选择是在 "Detached"模式中运行容器 。这意味着你在终端将不会看到来自你的容器的输出 。这可以通过在我们之前的命令中添加-d标志来实现 。
在分离模式下启动容器后,你的终端将显示新容器的完整ID--类似于a70d25c2a7cedae673f8ab...如果你想停止这个容器,你可以使用docker stop命令 , 用容器的ID告诉Docker 。比如说
因为输入整个ID是很麻烦的,如果你愿意 , Docker允许你只输入前三个或更多的字符 。
最后,我建议为你的容器命名 。我们在本书后面的许多例子中都会这样做,因为用名字来记住一个容器比用随机分配的ID要容易得多,再加上ID是随机的,所以每次你运行一个新版本的容器时,它都会得到一个新的ID 。只要不是已经有一个同名的容器,名字就可以多次发出来 。为了给我们的新应用容器命名,我们可以用传入的--name标志重新创建它 。
在使用docker run命令时,还有许多可用的选项,所以你可能想更详细地阅读文档 。在我们开发其余的应用程序时,我们会涉及其中的一些选项 。
现在我们要引入高德的天气 SDK , 在使用该 SDK 之前你需要阅读高德开放平台-天气查询的技术文档,再添加 SDK 之前我们首先要确保所有现有的容器都停止了 。
这个命令将列出所有正在运行的容器 。你也可以通过添加-a标志来查看停止的容器 。
如果有任何容器正在运行,那么在我们继续前进之前 , 使用docker stop来停止它们 。
该命令将在你的项目中装新的软件包 。在这个过程中,你应该在终端看到一些类似这样的输出 。
现在 SDK 已经安装完毕,可以使用了 。
我们将使用刚刚添加的高德天气 SDK 来完善我们的业务逻辑,打开controller目录下的Weather.php添加以下内容:
我们做了一些更新--主要是对引入天气 API 初始化天气类
我们的应用程序已经初步完成了向API传递一个真实的位置ID并返回一些数据 。首先,使用这个高德位置查询找到一个位置ID 。我使用的是上海的ID进行测试 。310000 , 当然你直接传上海也是可以的 。ok,让我们再次运行Docker容器 。
并在你的浏览器中访问正在运行的应用程序,地址是 。你应该可以看到一个JSON数据,看起来像这样 。
你的 Docker 化的 PHP 应用程序现在正从外部数据源返回真实数据,并在Apache中提供服务,但你可能会注意到,它的速度并不快(我的页面加载时间为1.92秒?。?。
高德天气 API 是一个免费的服务,其他国家可能无法访问 。为了解决这个问题,我们将把查询的数据保存在我们自己的 MySQL 数据库中,可以再下次访问的时候可以快速地响应 。这将极大地提高性能,下个章节我们将学习如何用 Docker 将 MySql 与 PHP 应用程序相结合 。
thinkphp6数据库操作的实验目的构建想要的功能 。thinkphp是一种用php语言构建的快速开发框架,是一个来源轻量级的php框架 。thinkphp6数据库操作的实验目的是构建想要的功能 。数据库是“按照数据结构来组织、存储和管理数据的仓库” 。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合 。
什么是phpPHP是一个基于服务端来创建动态网站的脚本语言 , 您可以用PHP和HTML生成网站主页 。当一个访问者打开主页时 , 服务端便执行PHP的命令并将执行结果发送至访问者的浏览器中 , 这类似于ASP和CoildFusion,然而PHP和他们不同之处在于PHP开放源码和跨越平台 , PHP可以运行在WINDOWS NT和多种版本的UNIX上 。它不需要任何预先处理而快速反馈结果 , 它也不需要mod_perl的调整来使您的服务器的内存映象减小 。PHP消耗的资源较少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担 。
除了能够操作您的页面外,PHP还能发送HIIP的标题 。您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有ODBC),集成各种外部库来做用PDF文档解析XML的任何事情 。
有了PHP就无需特殊的开发环境和IDE,您可以以?php 作为程序块的开始,可以以 ?作为PHP代码块的结束,当然您也可以用带有% %的标记甚至用SCRIPT LANGUAGE=“php”/script的ASP的格式来配置PHP , PHP会在那些标志间处理所有的事情 。
PHP的编程语言类似与C和Perl 。在使用它们之前您没必要声明任何变量,而且建立数组和Hash是很简单的事情 。PHP还有一些面向对象的特征,可以为组织和打包您的代码提供很好的帮助 。
虽然PHP在Apache里能快速运行,但是在PHP网站里有一些用来对Microsoft IIS 和Netscape Enterprise Server无缝结合的指令集 。如果您还没有copy PHP的话 , 您可以在下载,您也可以使用操作手册 , 它里边包括了所有的关于PHP的功能和特性的说明 。
【php操作数据库实训 php操作数据库实验心得】php操作数据库实训的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于php操作数据库实验心得、php操作数据库实训的信息别忘了在本站进行查找喔 。
推荐阅读
- redis自动删除,redis数据自动删除
- oracle中如何彻底删除表中某些记录,oracle中如何彻底删除表中某些记录内容
- 手机壁纸潮湿怎么处理,手机壁纸潮湿怎么处理好
- 区块链和特斯拉哪个好,一句话解释区块链和比特币
- mysql中怎么查看用户 mysql怎么查看用户属性
- java的倒序的代码,java中倒序
- 欧式模拟经营游戏,经典模拟经营游戏排行
- 抖音直播伴侣啸叫,抖音直播伴侣有杂音怎么调
- c语言函数指针实验报告 c语言指针实验报告总结与思考