首页 > 后端开发 > 正文

php使用容器开发框架 怎么使用Docker搭建PHP开发环境

2023-09-23 08:27:10 | 我爱编程网

今天我爱编程网小编整理了php使用容器开发框架 怎么使用Docker搭建PHP开发环境相关内容,希望能帮助到大家,一起来看下吧。

php使用容器开发框架 怎么使用Docker搭建PHP开发环境

如何写一个PHP框架呢?思路是什么,需要注意些什么?

第一步实现自动加载

第二步实现依赖注入容器

第三步实现路由

第四步实现控制器

第五步实现模型

第六步实现最基本的一些辅助操作类

1.Db类,数据库操作少不了

2.数据操作类,接收过滤getpostputdelete等数据

3.配置文件操作类,任何一个框架都少不了,是吧。

4.模板引擎,如果是前后端分离的可以不实现。

5.缓存操作,fileredismemcache等常用缓存

以上实现了一个最简单基本的框架就好了。

当然一个框架肯定不只这些。

php使用容器开发框架 怎么使用Docker搭建PHP开发环境

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。打开命令行,运行。 我爱编程网

现在,在浏览器中打开 -app/public/index.php/weather/1,你应该看到一个空页面,上面有以下文字:


那么恭喜你,你刚刚已经成功地在 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容器。

并在你的浏览器中访问正在运行的应用程序,地址是-app/public/index.php/weather/310000。你应该可以看到一个JSON数据,看起来像这样。

你的 Docker 化的 PHP 应用程序现在正从外部数据源返回真实数据,并在Apache中提供服务,但你可能会注意到,它的速度并不快(我的页面加载时间为1.92秒!)。
高德天气 API 是一个免费的服务,其他国家可能无法访问。为了解决这个问题,我们将把查询的数据保存在我们自己的 MySQL 数据库中,可以再下次访问的时候可以快速地响应。这将极大地提高性能,下个章节我们将学习如何用 Docker 将 MySql 与 PHP 应用程序相结合。

php使用容器开发框架 怎么使用Docker搭建PHP开发环境

怎么使用Docker搭建PHP开发环境

在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp、xampp、mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnmp)或者逐个安装做需要的软件。前者虽然简单,但太不灵活,想要安装额外的软件或者版本会很麻烦或者干脆不知道如何下手;后者除了费时费力,占用本机资源过多,可能会导致系统运行缓慢,而且如果你忘了及时生成快照,一旦失误,追悔莫及。
幸好,Docker来了!它简单易用,灵活多变,方便迅捷,扫除了以上种种弊端。如果你想稍微详细的认识下这位虚拟化界的明星,传送门( 快速理解Docker )。
安装Docker
平时开发的环境一般都是Mac或者windows,Linux暂时没有研究,所以接下来只针对前两者写下步骤,这两个平台,官方都推荐了两种安装方式:app和工具包(toolbox)。注:app方式对系统版本和配置会有一定要求,而且Windows需要你安装微软虚拟化产品Hyper-V,具体见app链接页面。
APP


工具包

以上方式本质上都会在你的系统中安装docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因为docker高度依赖linux内核提供的cgroup,namespace 等特性和接口,所以mac和windows平台需要使用docker-machine和虚拟机在后台创建运行一个linux内核。
而我的安装方式就是直接在 Mac 上使用brew,如果你未曾安装brew,则在终端执行以下代码:
/usr/bin/ruby -e "$(curl -fsSL )"
安装docker所需要的包:
brew install docker docker-machine docker-compose virtualbox
创建一个docker-machine:
docker-machine create -d virtualbox default
注:-d 指定使用virtualbox来创建default 为machine名称
告诉主机如何找到docker-machine:
echo $(docker-machine env ) >> .zshrc
注:这里的.zshrc是我的用户配置文件,如果你用bash,可以改为.bash_profile。
启动docker-machine:
docker-machine start default Compose你的应用
docker-compose是用于定义和运行复杂Docker应用的工具。你可以在docker-compose.yml文件中定义一个多容器的应用,然后使用一条命令来启动,然后所有预先定义好的操作都会被自动完成。
为了不重复造轮子,直接使用github上的第三方包。当然你也可以亲自构建每一个你所需要的容器镜像,然后用docker-compose.yml将所有容器组织起来运行,但这需要你具备一定的linux基础和docker的运行机制和相关语法。
本人正在学习 laradock 这个基于Docker的开发环境包,然后根据自己的需要删除了一些我认为不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最终新开了自己的仓库 DevDock 。当然,也推荐使用laradock。
我的仓库目前支持的容器组合:
nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .
注:workspace和php-fpm一般会被其他容器所依赖,所以会自动运行,启动时不必指定。
进入到你的应用的上级目录:
git clone
修改hosts
如果直接安装启动,是可以通过Docker IP : 192.168.99.100,就能直接访问nginx的,但一般而言为了方便记忆,我们会去修改hosts文件,增加一条:
192.168.99.100 laravel.dev
修改你的nginx中的站点配置文件:
在DevDock目录下找到nginx,修改sites目录下的站点配置文件,通过修改本地的hosts来自定义域名,并在nginx容器中的sites文件夹下,修改相应的域名映射。
server_name laravel.dev
安装启动应用
cd DevDock docker-compose up -d nginx mysql ... # 后面跟上你想使用的容器即可
然后,耐心地等待开发环境自动搭建完成即可,如果中途出现错误,一般是因为GFW,网络会不太通畅,重新执行一两次就好,完成之后,打开浏览器,访问: 即可。

以上就是php使用容器开发框架 怎么使用Docker搭建PHP开发环境全部内容,更多相关信息,敬请关注我爱编程网。
与“php使用容器开发框架 怎么使用Docker搭建PHP开发环境”相关推荐
php使用容器开发框架 Docker PHP 入门实践(三)
php使用容器开发框架 Docker PHP 入门实践(三)

怎么使用Docker搭建PHP开发环境在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp、xampp、mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnmp)或者逐个安装做需要的软件。前者虽然简单,但太不灵活,想要安装额外的软件或者版本会很麻烦或者干脆不知道如何下手;后者除了费时费力,占用本机资源过多,可能会

2023-09-23 08:27:18
php框架怎么搭测试环境 写网站需要用到php,怎样搭建php环境
php框架怎么搭测试环境 写网站需要用到php,怎样搭建php环境

php框架搭建方法?php框架搭建步骤:1.项目初始化首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composer.json文件。2.添加入口文件初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建

2023-09-25 19:13:43
如何使用多个php框架 如何在本地搭建多个PHP环境
如何使用多个php框架 如何在本地搭建多个PHP环境

怎么才能在一个服务器上建立多个PHP站点在同一台服务器里如何运行多个网站,提供WEB、FTP、Mail等服务。工具/原料虚拟主机ApacheWeb服务软件方法/步骤实现方法有三种:1:IP的方法①基于IP的方法:在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。2:基于主机名的方法②基于端口的方法:一

2023-09-20 00:10:52
php怎么搭建框架 写网站需要用到php,怎样搭建php环境
php怎么搭建框架 写网站需要用到php,怎样搭建php环境

PHP开发用哪种框架PHP开发常用框架一、CI框架CI框架是一个简单快速的PHPMVC轻量级框架,它执行效率高,快速简洁,代码量少,适合中小型项目开发,也可以做大型项目,但扩展能力不是很好。优势:框架比较简单,适合入门开发,易学,上手快,静态化很容易,文档比较详细。缺点:由于框架较小,所以功能不完全,比如使用mongoDB就要自己实现接口,对数据库的操作不够安全(写入

2023-09-11 11:54:48
php插件式开发框架 如何在 Eclipse 中使用插件构建 PHP 开发环境
php插件式开发框架 如何在 Eclipse 中使用插件构建 PHP 开发环境

php如何写插件写在最前随着互联网飞速发展,lamp架构的流行,php支持的扩展也越来越多,这样直接促进了php的发展。但是php也有脚本语言不可避免的问题,性能比例如C等编译型语言相差甚多,所以在考虑性能问题的时候最好还是通过php扩展来解决。(推荐学习:PHP视频教程)那么,怎么去做一个php扩展呢。下面从一个例子开始(需要C基础)。解决一个问题在一个系统中,如

2023-09-18 08:47:40
web前端开发怎么搭建环境 如何搭建javaweb开发环境
web前端开发怎么搭建环境 如何搭建javaweb开发环境

怎样从无到有地建立一个前端项目?年后入职新公司,面试时聊到公司的情况大致是这样的:团队里需要招一名前端(就此一人,其他都是后台开发的),项目是一个工具类的Pc端项目(我的理解就是web应用!?),框架用的是vue,而且这个项目组是新成立的,也就是说前端的活儿需要我从零开始一步一步搭建。我本人之前的项目经验比较肤浅,没有过这种全权负责整个前端部分的经验,因此想问问各位大神,一般来说,应该怎样做

2023-09-24 07:08:54
php使用layui框架 layui后端怎么搭建
php使用layui框架 layui后端怎么搭建

layui后端怎么搭建如果你想了解更多关于layui的知识,可以点击:layui教程layui(谐音:类UI)是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui首个版本发布于2016年金秋,她区

2023-09-12 06:38:05
原生php怎么套用thinkphp框架 如何搭建phpthink框架环境
原生php怎么套用thinkphp框架 如何搭建phpthink框架环境

ThinkPHP框架如何开发RPC接口本篇文章介绍了如何使用ThinkPHP框架开发RPC接口,具有一定的参考价值,希望对学习thinkPHP的朋友有帮助!ThinkPHP框架如何开发RPC接口网站建设技术中使用RPC方式开发应用,会使在网络分布式多程序内的应用程序更加容易。本文分享关于在ThinkPHP框架中如何开发RPC接口,我们可以通过继承PHPRpc来实现开发接口以及调用。

2023-09-24 19:19:32