作者:黄ll明雪_742 | 来源:互联网 | 2023-01-22 19:09
一、安装要求PHP7.3SwoolePHP扩展4.5,并关闭了ShortNameOpenSSLPHP扩展JSONPHP扩展PDOPHP扩展(如需要使用到MySQL客户端)Red
一、安装要求 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,并填写如下代码
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}