title: Easyswoole helloworld入门教程 meta:

  • name: description content: EasySwoole hello world开发示例
  • name: keywords content: swoole|swoole 拓展|swoole 框架|easyswoole入门教程|swoole 扩展|swoole框架|swoole|swoole 入门教程

Hello World

在项目根目录下创建如下的目录结构,这个目录是编写业务逻辑的应用目录,编辑 Index.php 文件,添加基础控制器的代码

::: tip 注意
旧版本安装后不会自动生成目录(这跟传统框架不同),需要创建并且加入composer加载配置才能生效,请耐心看完本篇内容
新版本安装后已经会自动注册App命名空间,并且提供默认的Index控制器方法,但还是推荐你们看懂这篇文章。 :::

  1. project 项目部署目录
  2. ----------------------------------
  3. ├─App 应用目录
  4. └─HttpController 应用的控制器目录
  5. └─Index.php 默认控制器文件
  6. ----------------------------------
  1. <?php
  2. namespace App\HttpController;
  3. use EasySwoole\Http\AbstractInterface\Controller;
  4. class Index extends Controller
  5. {
  6. public function index()
  7. {
  8. // TODO: Implement index() method.
  9. $this->response()->write('hello world');
  10. }
  11. }

然后编辑根目录下的 composer.json 文件,注册应用的命名空间

  1. {
  2. "autoload": {
  3. "psr-4": {
  4. "App\\": "App/"
  5. }
  6. },
  7. "require": {
  8. "easyswoole/easyswoole": "3.x"
  9. }
  10. }

::: warning 实际上就是注册App的名称空间 :::

最后执行 composer dumpautoload 命令更新命名空间,框架已经可以自动加载 App 目录下的文件了,此时框架已经安装完毕,可以开始编写业务逻辑

  1. # 更新命名空间映射
  2. composer dumpautoload
  3. # 启动框架
  4. php easyswoole start

启动框架后,访问 http://localhost:9501即可看到 Hello World 。

关于IDE助手

由于 Swoole 的函数并不是PHP标准函数,IDE无法进行自动补全,为了方便开发,可以执行以下命令引入IDE助手,在IDE下即可自动补全 Swoole 相关的函数

  1. composer require easyswoole/swoole-ide-helper

目录结构

EasySwoole 的目录结构是非常灵活的,基本上可以任意定制,没有太多的约束,但是仍然建议遵循下面的目录结构,方便开发

  1. project 项目部署目录
  2. ├─App 应用目录(可以有多个)
  3. ├─HttpController 控制器目录
  4. └─Index.php 默认控制器
  5. └─Model 模型文件目录
  6. ├─Log 日志文件目录
  7. ├─Temp 临时文件目录
  8. ├─vendor 第三方类库目录
  9. ├─composer.json Composer架构
  10. ├─composer.lock Composer锁定
  11. ├─EasySwooleEvent.php 框架全局事件
  12. ├─easyswoole 框架管理脚本
  13. ├─dev.php 开发配置文件
  14. ├─produce.php 生产配置文件

::: warning 如果项目还需要使用其他的静态资源文件,建议使用 Nginx / Apache 作为前端Web服务,将请求转发至 easySwoole 进行处理,并添加一个 Public 目录作为Web服务器的根目录 :::

::: warning 注意!请不要将框架主目录作为web服务器的根目录,否则dev.php,produce.php等根目录文件配置将会是可访问的,也可自行排除重要文件 :::