框架安装

    Composer 安装

    按下面的步骤进行手动安装

    1. composer require easyswoole/easyswoole=3.x
    2. php vendor/bin/easyswoole install

    如果安装遇到报错,请看下面的报错处理

    报错处理

    在一些环境中,特别是使用集成面板安装的 PHP 环境,会出现以下报错:

    1. dir=$(d=${0%[/\\]*}; cd "$d" > /dev/null; cd '../easyswoole/easyswoole/bin' && pwd)
    2. # See if we are running in Cygwin by checking for cygpath program
    3. if command -v 'cygpath' >/dev/null 2>&1; then
    4. # Cygwin paths start with /cygdrive/ which will break windows PHP,
    5. # so we need to translate the dir path to windows format. However
    6. # we could be using cygwin PHP which does not require this, so we
    7. # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
    8. if [[ $(which php) == /cygdrive/* ]]; then
    9. dir=$(cygpath -m "$dir");
    10. fi
    11. fi
    12. dir=$(echo $dir | sed 's/ /\ /g')
    13. "${dir}/easyswoole" "$@"

    引起该报错的大多数原因是因为当前PHP.ini禁用了symlink函数,或者无法在vendor目录下创建符号链接,可以执行以下命令行观察输出确认是否禁用了该函数,如果没有禁用该函数,则输出的列表中没有symlink字样

    1. php -ini | grep disable_functions

    如果是其他原因导致的该报错,可以在项目根目录下手工执行以下命令,将可执行文件链接出来 :

    1. cd vendor/bin/ && rm -rf easyswoole && ln -s ../easyswoole/easyswoole/bin/easyswoole easyswoole && cd ../../

    或者直接指向EasySwoole的管理脚本执行安装命令 :

    1. composer require easyswoole/easyswoole=3.x-dev
    2. php vendor/bin/easyswoole install

    中途没有报错的话,执行:

    1. # 启动框架
    2. php easyswoole start

    此时可以访问 http://localhost:9501 看到框架的欢迎页面,表示框架已经安装成功

    如果第二步的 install 操作报错 请查看上方的报错处理

    Dockerfile

    1. FROM php:7.2
    2. # Version
    3. ENV PHPREDIS_VERSION 4.0.1
    4. ENV SWOOLE_VERSION 4.3.3
    5. ENV EASYSWOOLE_VERSION 3.x-dev
    6. # Timezone
    7. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    8. && echo 'Asia/Shanghai' > /etc/timezone
    9. # Libs
    10. RUN apt-get update \
    11. && apt-get install -y \
    12. curl \
    13. zip \
    14. libz-dev \
    15. libssl-dev \
    16. libnghttp2-dev \
    17. libpcre3-dev \
    18. && apt-get clean \
    19. && apt-get autoremove
    20. # Composer
    21. RUN curl -sS https://getcomposer.org/installer | php \
    22. && mv composer.phar /usr/local/bin/composer \
    23. && composer self-update --clean-backups
    24. # PDO extension
    25. RUN docker-php-ext-install pdo_mysql
    26. # Bcmath extension
    27. RUN docker-php-ext-install bcmath
    28. # Redis extension
    29. RUN wget http://pecl.php.net/get/redis-${PHPREDIS_VERSION}.tgz -O /tmp/redis.tar.tgz \
    30. && pecl install /tmp/redis.tar.tgz \
    31. && rm -rf /tmp/redis.tar.tgz \
    32. && docker-php-ext-enable redis
    33. # Swoole extension
    34. RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
    35. && mkdir -p swoole \
    36. && tar -xf swoole.tar.gz -C swoole --strip-components=1 \
    37. && rm swoole.tar.gz \
    38. && ( \
    39. cd swoole \
    40. && phpize \
    41. && ./configure --enable-async-redis --enable-mysqlnd --enable-openssl --enable-http2 \
    42. && make -j$(nproc) \
    43. && make install \
    44. ) \
    45. && rm -r swoole \
    46. && docker-php-ext-enable swoole
    47. WORKDIR /var/www/code
    48. # Install easyswoole
    49. RUN cd /var/www/code \
    50. && php vendor/bin/easyswoole install
    51. EXPOSE 9501
    52. ENTRYPOINT ["php", "/var/www/code/easyswoole", "start"]

    Hello World

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

    1. project 项目部署目录
    2. ----------------------------------
    3. ├─App 应用目录
    4. └─HttpController 应用的控制器目录
    5. └─Index.php 默认控制器文件
    6. ----------------------------------

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

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

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

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

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

    由于 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. ├─easyswoole.install 框架安装锁定文件
    14. ├─dev.php 开发配置文件
    15. ├─produce.php 生产配置文件

    其他

    • QQ交流群

      • VIP群 579434607 (本群需要付费599元)
      • EasySwoole官方一群 633921431(已满)
      • EasySwoole官方二群 709134628
    • 商业支持:

      • QQ 291323003
      • EMAIL admin@fosuss.com
    • 作者微信

      • 持续和深入地开发
      • 文档和社区的建设和维护