详解Docker 下开发 hyperf 完整使用示例

本文将详细介绍在 Docker 环境下,如何使用 Hyperf 开发应用,并给出完整的使用示例。主要包括以下几个部分。

安装 Docker

本文的演示基于 Docker 环境,因此需要先安装 Docker。Docker 可以在多个平台上运行,如 Windows、macOS 和 Linux。这里以 macOS 为例进行说明。

在 macOS 上安装 Docker 的具体步骤可以在官方文档中查看,这里简单列举一下:

  1. 下载安装包并进行安装:https://www.docker.com/get-started
  2. 打开终端,在命令行中输入 docker version 命令,检查是否安装成功。

创建 Docker 容器

在 Docker 中启动一个 Hyperf 服务,我们需要创建一个新的容器,并在容器中安装 Hyperf 所需的依赖。可以使用官方的 Docker 镜像来创建容器。

下面是创建 Docker 容器的命令:

docker run -ti --name hyperf -p 9501:9501 -v /path/to/your/code:/data/hyperf hyperf/hyperf:latest /bin/bash

其中,

  • -ti:用交互模式运行容器,并分配一个终端。
  • --name:为容器指定一个名称。
  • -p:将容器内的 9501 端口映射到宿主机上的 9501 端口。
  • -v:将本地的代码目录 /path/to/your/code 挂载到容器中的 /data/hyperf 目录中,这样可以在容器中以访问本地目录的方式加载代码。
  • hyperf/hyperf:latest:使用官方的 Hyperf 镜像,并指定版本为最新版。
  • /bin/bash:在容器中启动 Bash 终端。

在容器中安装成功后,可以在容器的 Bash 终端中执行以下命令来确认 Hyperf 是否安装成功。

composer create-project hyperf/hyperf-skeleton
cd hyperf-skeleton
php bin/hyperf.php start

开始编写代码

在容器中安装好 Hyperf 后,就可以开始编写代码了。这里以一个简单的示例说明。

示例一

创建一个 /test 路由,返回一个字符串。

routes.php 中加入以下代码:

<?php

use Hyperf\HttpServer\Router\Router;

Router::get('/test', function () {
    return 'Hello, Hyperf!';
});

示例二

使用 MySQL 数据库,并返回数据库中的一条记录。

首先需要安装 PDO 扩展和相关库:

docker-php-ext-install pdo_mysql
apt-get update && apt-get install -y libpq-dev
docker-php-ext-install pgsql pdo_pgsql

然后根据实际情况修改配置文件 config/autoload/dependencies.php,加入以下依赖:

[
    'class' => Hyperf\DbConnection\Db::class,
    'constructor' => [
        'pool' => Hyperf\DbConnection\DbPool::class,
    ],
],
[
    'class' => Hyperf\DbConnection\DbPool::class,
    'constructor' => [
        'option' => [
            'username' => 'root',
            'password' => '',
            'database' => 'test',
            'host' => 'mysql',
            'port' => 3306,
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_general_ci',
            'pool' => [
                'min_connections' => 1,
                'max_connections' => 10,
                'connect_timeout' => 10.0,
                'wait_timeout' => 3.0,
                'heartbeat' => -1,
                'max_idle_time' => (float) env('DB_MAX_IDLE_TIME', 60),
            ],
        ],
    ],
],

然后在 /test_db 路由中获取数据库中一条记录,修改代码如下:

<?php

use Hyperf\HttpServer\Router\Router;
use Hyperf\DbConnection\Db;

Router::get('/test_db', function () {
    $data = Db::table('users')->where('id', 1)->first();
    return json_encode($data);
});

运行 Hyperf 应用

运行 Hyperf 应用非常简单,只需要在命令行输入以下命令:

cd hyperf-skeleton
php bin/hyperf.php start

如果一切顺利,你应该能在浏览器上访问 http://localhost:9501/test 和 http://localhost:9501/test_db,看到返回的内容。

以上就是在 Docker 环境下使用 Hyperf 开发应用的整个流程,希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Docker 下开发 hyperf 完整使用示例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 项目适 Oracle改造及SSL安全性配置问题汇总详解

    项目适 Oracle改造及SSL安全性配置问题汇总详解 本文将针对项目中遇到的 Oracle 改造和 SSL 安全性配置问题做一个详细的总结和解决方案,以供大家参考。 一、Oracle 改造问题 数据存储问题 原项目使用的是 MySQL 数据库,现在需要迁移到 Oracle 数据库中。首先需要将原有数据表结构进行调整,使用 Oracle 数据库中的数据类型。…

    database 2023年5月21日
    00
  • mysql,获取当天0点0分的日期和23点59分59秒的日期

    当前日期23:59:59 SQL:SELECT DATE_SUB( DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY),INTERVAL 1 SECOND) 如图:   当前日期往前推14天00:00:00零点零分的时间 sql:SELECT DATE_SUB(DATE_FORMAT(CURDATE(),’%Y-%m-%d %H:%…

    MySQL 2023年4月13日
    00
  • Centos 7 下的 Zabbix3.4 安装步骤详解

    Centos 7 下的 Zabbix3.4 安装步骤详解 1. 安装必备软件 在安装 Zabbix 之前,先安装必要的软件:LAMP 和 SNTP。 1.1 LAMP 软件包的安装 首先安装 Apache2,MariaDB 和 PHP。 yum install -y httpd mariadb-server mariadb php php-mysql php…

    database 2023年5月22日
    00
  • MySQL系列之一 MariaDB-server安装

    下面是”MySQL系列之一 MariaDB-server安装”的完整攻略: MariaDB-server安装 简介 MariaDB是MySQL数据库的一个分支,具有高度兼容性,并提供了许多额外的功能,如更好的性能、负载平衡、高可用性等。本攻略将介绍如何在Linux系统上安装MariaDB-server。 步骤 1. 更新系统 在进行任何操作之前,我们应该先更…

    database 2023年5月22日
    00
  • SQL Server 2005基础知识详细整理

    SQL Server 2005基础知识详细整理 本文将详细介绍SQL Server 2005的基础知识,包括以下几个方面: 数据库的创建与删除 数据表的创建与修改 数据的查询与筛选 数据的增删改操作 数据库的创建与删除 创建数据库 在SQL Server 2005中,使用CREATE DATABASE语句可以创建一个新的数据库。创建数据库的基本语法如下: C…

    database 2023年5月21日
    00
  • 对MySQL子查询的简单改写优化

    关于对MySQL子查询的简单改写优化,一般可以采用以下两种方式: 1. 使用连接(JOIN)代替子查询 子查询执行时,会把每个子查询结果保存在临时表中,然后再执行主查询,这就会增加查询语句的运行时间。而连接(JOIN)是更有效的方式,因为它只需要执行一次查询。 以下是一个使用连接代替子查询的示例: SELECT c.customerName, o.order…

    database 2023年5月19日
    00
  • gORM操作MySQL的实现

    实现gORM操作MySQL需要遵循以下步骤: 安装gORM框架 使用go命令安装gORM框架: go get -u github.com/go-gorm/gorm 导入必要的包 在使用gORM操作MySQL前必须导入数据库驱动,可以选择MySQL的官方驱动库。 import ( "gorm.io/driver/mysql" "g…

    database 2023年5月21日
    00
  • SQL(MSSQLSERVER)服务启动错误代码3414的解决方法

    SQL Server 是一种常用的关系型数据库管理系统。但在使用过程中,可能会遇到服务启动错误的问题,其中,错误代码 3414 是比较常见的一种。下面,我来为大家介绍一下详细的解决方法。 步骤一:查看错误日志 当 SQL Server 启动失败时,需要查看 下载 SQL Server 错误日志文件,以获取更多有关启动过程中出现的错误的详细信息。在日志文件中,…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部