脚本宝典收集整理的这篇文章主要介绍了初试hyperf,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP >= 7.3
Swoole PHP 扩展 >= 4.5,并关闭了 Short Name
OpenSSL PHP 扩展
JSON PHP 扩展
PDO PHP 扩展 (如需要使用到 MysqL 客户端)
Redis PHP 扩展 (如需要使用到 Redis 客户端)
Protobuf PHP 扩展 (如需要使用到 gRPC 服务端或客户端)
composer create-project hyperf/hyperf-skeleton
@H_419_18@
bin 执行hyperf启动脚本
app 控制器、异常、监听器、模型
config 配置文件
runtime 运行时产生的文件
@H_419_18@
配置路由的方式有两种方式
第一种:/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; 命名空间;
*/
@H_419_18@
驼峰命名的控制器,会自动转化为蛇形路由,以下为控制器与实际路由的对应关系示例:
控制器 注解 访问路由
控制器 | 注解 | 访问路由 |
---|---|---|
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地址)
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= //表前缀
@H_419_18@
注意:使用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(); //按条件查询
@H_419_18@
更多查询方式可参考 官网: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
@H_419_18@
3、安装task
composer require hyperf/task:~2.0.0
@H_419_18@
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'],
],
@H_419_18@
5、安装模板引擎,博主已ThinkTemplate(thinkPHP) 引擎为例
composer require sy-records/think-template
@H_419_18@
安装完成后打开 /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/',
],
];
@H_419_18@
在根目录创建 /storage/view/index.html文件,如果目录不存在就手动创建一下。
在控制器中调用模板
use Hyperf\View\RenderInterface; //引入
public function index(RenderInterface $render){
$name="hyperf";
return $render->render('index', ['name' => $name]); //渲染模板并输出
}
@H_419_18@
index.HTML代码如下,因采用了thinkPHP的模板引擎,所有直接使用thinkPHP的模板语法即可:
${name}
@H_419_18@
以上是脚本宝典为你收集整理的初试hyperf全部内容,希望文章能够帮你解决初试hyperf所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。