初试hyperf

一、安装要求

PHP >= 7.3
Swoole PHP 扩展 >= 4.5,并关闭了 Short Name
OpenSSL PHP 扩展
JSON PHP 扩展
PDO PHP 扩展 (如需要使用到 MySQL 客户端)
Redis PHP 扩展 (如需要使用到 Redis 客户端)
Protobuf PHP 扩展 (如需要使用到 gRPC 服务端或客户端)

二、通过composer安装

composer create-project hyperf/hyperf-skeleton

三、目录结构

bin          执行hyperf启动脚本
app          控制器、异常、监听器、模型
config       配置文件
runtime      运行时产生的文件

四、配置路由

配置路由的方式有两种方式
第一种:/config/routes.php 中进行配置。
第二种:使用注解进行配置,这里博主采用注解方式进行配置。

在/app/controller/目录下创建控制器InfoController.php,并填写如下代码

<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Annotation\AutoController;

/**
 * @AutoController()
 */
class InfoController extends AbstractController
{
    public function index(){
        return ['name'=>"hyperf"];
    }
}


/**
* 这里就不要复制了!!!!!!
* @AutoController 为绝大多数简单的访问场景提供路由绑定支持,使用 @AutoController 时则 Hyperf 会自动解析所在类*
* 的所有 public 方法并提供 GET 和 POST 两种请求方式。
* 使用 @AutoController 注解时需 use Hyperf\HttpServer\Annotation\AutoController; 命名空间; 
*/

驼峰命名的控制器,会自动转化为蛇形路由,以下为控制器与实际路由的对应关系示例:
控制器 注解 访问路由

控制器注解访问路由
MyDataController@AutoController()/my_data/index
MyDataController@AutoController()/mydata/index
MyDataController@AutoController(prefix="/data")/data/index

五、启动服务

在根目录下运行 php bin/hyperf.php ,访问 http://127.0.0.1:9501/info/index 即可(127.0.0.1修改成你自己的ip地址)

六、链接数据库

1、在根目录,找到.env 文件,修改数据库连接信息

DB_DRIVER=mysql
DB_HOST=192.168.37.128    //数据库地址
DB_PORT=3306                     //端口
DB_DATABASE=demo          //数据库名称
DB_USERNAME=root         //账户
DB_PASSWORD=root       //密码
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=                 //表前缀

2、打开控制器添加如下代码

注意:使用Db::table的时候一定要导入 use Hyperf\DbConnection\Db;
注意:使用Db::table的时候一定要导入 use Hyperf\DbConnection\Db;
注意:使用Db::table的时候一定要导入 use Hyperf\DbConnection\Db;

$row = Db::table('user')->first();    //查询一条

$users = Db::select('SELECT * FROM user;');  //查询所有

$id = Db::table('user')->value('id');   //获取单个值

$users = Db::table('user')->where([
    ['status', '=', '1'],
    ['gender', '=', '1'],
])->get(); //按条件查询

更多查询方式可参考 官网:https://hyperf.wiki/2.1/#/zh-cn/db/quick-start

七、视图

1、安装视图组件:composer require hyperf/view:~2.0.0 //博主使用的是hyperf 2.0.0版本的,所有安装其他组件也要和hyperf版本一致,否则无法安装成功!!!!!!

2、跟目录执行如下命令,会在/config/autoload下生成view配置文件

php bin/hyperf.php vendor:publish hyperf/view

3、安装task

composer require hyperf/task:~2.0.0

4、配置静态资源和task
打开/config/autoload/server.php,添加如下代码

'settings' => [
		...其他配置不用修改
		
        // Task Worker 数量,根据您的服务器配置而配置适当的数量
        'task_worker_num' => 8,
        // 因为 `Task` 主要处理无法协程化的方法,所以这里推荐设为 `false`,避免协程下出现数据混淆的情况
        'task_enable_coroutine' => false,
        // 静态资源
        'document_root' => BASE_PATH . '/public',
        'enable_static_handler' => true,
],
'callbacks' => [
        SwooleEvent::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'],
        SwooleEvent::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'],
        SwooleEvent::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'],
        SwooleEvent::ON_TASK => [Hyperf\Framework\Bootstrap\TaskCallback::class, 'onTask'],
        SwooleEvent::ON_FINISH => [Hyperf\Framework\Bootstrap\FinishCallback::class, 'onFinish'],
    ],

5、安装模板引擎,博主已ThinkTemplate(thinkphp) 引擎为例

composer require sy-records/think-template

安装完成后打开 /config/autoload/view.php,将 “engine”的值修改为ThinkEngine::class

use Hyperf\View\Engine\ThinkEngine;
use Hyperf\View\Mode;

return [
    'engine' => ThinkEngine::class,
    'mode' => Mode::SYNC,
    'config' => [
        'view_path' => BASE_PATH . '/storage/view/',             //模板存放路径
        'cache_path' => BASE_PATH . '/runtime/view/',
    ],
];

在根目录创建 /storage/view/index.html文件,如果目录不存在就手动创建一下。
在控制器中调用模板

use Hyperf\View\RenderInterface; //引入
public function index(RenderInterface $render){
       $name="hyperf";
		return $render->render('index', ['name' => $name]);    //渲染模板并输出
    }

index.html代码如下,因采用了thinkphp的模板引擎,所有直接使用thinkphp的模板语法即可:

${name}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值