框架安装
Composer 安装
按下面的步骤进行手动安装
composer require easyswoole/easyswoole=3.x
php vendor/bin/easyswoole install
如果安装遇到报错,请看下面的报错处理
报错处理
在一些环境中,特别是使用集成面板安装的 PHP 环境,会出现以下报错:
dir=$(d=${0%[/\\]*}; cd "$d" > /dev/null; cd '../easyswoole/easyswoole/bin' && pwd)
# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m "$dir");
fi
fi
dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/easyswoole" "$@"
引起该报错的大多数原因是因为当前PHP.ini禁用了symlink
函数,或者无法在vendor
目录下创建符号链接,可以执行以下命令行观察输出确认是否禁用了该函数,如果没有禁用该函数,则输出的列表中没有symlink
字样
php -ini | grep disable_functions
如果是其他原因导致的该报错,可以在项目根目录下手工执行以下命令,将可执行文件链接出来 :
cd vendor/bin/ && rm -rf easyswoole && ln -s ../easyswoole/easyswoole/bin/easyswoole easyswoole && cd ../../
或者直接指向EasySwoole的管理脚本执行安装命令 :
composer require easyswoole/easyswoole=3.x-dev
php vendor/bin/easyswoole install
中途没有报错的话,执行:
# 启动框架
php easyswoole start
此时可以访问 http://localhost:9501
看到框架的欢迎页面,表示框架已经安装成功
如果第二步的 install 操作报错 请查看上方的报错处理
Dockerfile
FROM php:7.2
# Version
ENV PHPREDIS_VERSION 4.0.1
ENV SWOOLE_VERSION 4.3.3
ENV EASYSWOOLE_VERSION 3.x-dev
# Timezone
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' > /etc/timezone
# Libs
RUN apt-get update \
&& apt-get install -y \
curl \
zip \
libz-dev \
libssl-dev \
libnghttp2-dev \
libpcre3-dev \
&& apt-get clean \
&& apt-get autoremove
# Composer
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/composer \
&& composer self-update --clean-backups
# PDO extension
RUN docker-php-ext-install pdo_mysql
# Bcmath extension
RUN docker-php-ext-install bcmath
# Redis extension
RUN wget http://pecl.php.net/get/redis-${PHPREDIS_VERSION}.tgz -O /tmp/redis.tar.tgz \
&& pecl install /tmp/redis.tar.tgz \
&& rm -rf /tmp/redis.tar.tgz \
&& docker-php-ext-enable redis
# Swoole extension
RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
&& mkdir -p swoole \
&& tar -xf swoole.tar.gz -C swoole --strip-components=1 \
&& rm swoole.tar.gz \
&& ( \
cd swoole \
&& phpize \
&& ./configure --enable-async-redis --enable-mysqlnd --enable-openssl --enable-http2 \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r swoole \
&& docker-php-ext-enable swoole
WORKDIR /var/www/code
# Install easyswoole
RUN cd /var/www/code \
&& php vendor/bin/easyswoole install
EXPOSE 9501
ENTRYPOINT ["php", "/var/www/code/easyswoole", "start"]
Hello World
在项目根目录下创建如下的目录结构,这个目录是编写业务逻辑的应用目录,编辑 Index.php
文件,添加基础控制器的代码
project 项目部署目录
----------------------------------
├─App 应用目录
│ └─HttpController 应用的控制器目录
│ └─Index.php 默认控制器文件
----------------------------------
然后编辑根目录下的 composer.json 文件,注册应用的命名空间
{
"autoload": {
"psr-4": {
"App\\": "App/"
}
},
"require": {
"easyswoole/easyswoole": "3.x-dev"
}
}
实际上就是注册App的名称空间
最后执行 composer dumpautoload
命令更新命名空间,框架已经可以自动加载 App 目录下的文件了,此时框架已经安装完毕,可以开始编写业务逻辑
# 更新命名空间映射
composer dumpautoload
# 启动框架
php easyswoole start
由于 Swoole 的函数并不是PHP标准函数,IDE无法进行自动补全,为了方便开发,可以执行以下命令引入IDE助手,在IDE下即可自动补全 Swoole 相关的函数
composer require easyswoole/swoole-ide-helper
目录结构
EasySwoole 的目录结构是非常灵活的,基本上可以任意定制,没有太多的约束,但是仍然建议遵循下面的目录结构,方便开发
project 项目部署目录
├─App 应用目录(可以有多个)
│ ├─HttpController 控制器目录
│ │ └─Index.php 默认控制器
│ └─Model 模型文件目录
├─Log 日志文件目录
├─Temp 临时文件目录
├─vendor 第三方类库目录
├─composer.json Composer架构
├─composer.lock Composer锁定
├─EasySwooleEvent.php 框架全局事件
├─easyswoole 框架管理脚本
├─easyswoole.install 框架安装锁定文件
├─dev.php 开发配置文件
├─produce.php 生产配置文件
其他
QQ交流群
- VIP群 579434607 (本群需要付费599元)
- EasySwoole官方一群 633921431(已满)
- EasySwoole官方二群 709134628
商业支持:
- QQ 291323003
- EMAIL admin@fosuss.com
作者微信
-
- 持续和深入地开发
- 文档和社区的建设和维护