晓夏

北漂的女孩

Good Luck To You!

swoft框架安装和学习

浏览量:375

简介:


首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。

  • 基于 Swoole 扩展

  • 内置协程网络服务器

  • WebSocket 服务器

  • MVC 分层设计

  • 高性能路由

  • 强大的 AOP (面向切面编程)

  • 灵活的注解功能

  • 全局的依赖注入容器

  • 基于 PSR-7 的 HTTP 消息实现

  • 基于 PSR-11 的容器规范实现

  • 基于 PSR-14 的事件管理器

  • 基于 PSR-15 的中间件

  • 基于 PSR-16 的缓存设计

  • 可扩展的高性能 RPC

  • RESTful 支持

  • 国际化(i18n)支持

  • 快速灵活的参数验证器

  • 完善的服务治理,熔断、降级、负载、注册与发现

  • 通用连接池 Mysql、Redis、RPC

  • 数据库 ORM

  • 协程、异步任务投递

  • 自定义用户进程

  • 协程和同步阻塞客户端无缝自动切换

  • 别名机制

  • 跨平台热更新自动 Reload

  • 强大的日志系统

环境搭建:

  • 运行swoft需要哪些环境的支持

  • 在本机手动运行(只支持Mac Linux)

    • 安装必须的包

  • 使用docker运行

    • 使用官方镜像

    • 使用docker-compose

学习文档:

https://www.swoft.org/

环境需求:

  • 安装PHP并且版本至少 >7.0,推荐 7.1+

  • 安装php包管理器 composer

  • 安装redis的异步客户端 hiredis

  • 连接迭代器依赖 pcre

  • 安装php扩展swoole, 并且版本至少 >=2.1

    • swoole开启协程和异步redis

  • 其他需要安装和启用的php扩展有:PDO

我是在本地搭建了个虚拟机,然后,安装去安装的,稍微整理一下笔记,方便新手学习。

安装php7.1:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

//查看
yum search php71w

//安装php以及扩展
yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath

//开启服务
service php-fpm start
//重启nginx
service nginx restart

//修改/etc/nginx/nginx.conf 使其支持php

server {
charset utf-8;
client_max_body_size 128M;

listen 80; ## listen for ipv4

server_name localhost;
root /var/www/;
index index.php;

location / {
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php/$1 last;
}
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/?.*)$;
fastcgi_param SCRIPT_FILENAME
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}

error_page 404 /404.html;
location ~ /\.(ht|svn|git) {
deny all;
}
}

安装docker

yum install docker -y
yum install python-pip -y && pip install --upgrade pip && pip install -U docker-compose

安装Composer

1、将composer.phar下载到项目中
使用curl -sS https://getcomposer.org/installer | php
下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)

2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):
curl -sS https://getcomposer.org/installer | php -- --install-dir=lumen

3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar。
在类Unix系统中,你甚至可以在使用时不加 php 前缀。可以执行这些命令让 composer 在你的
系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer


现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。

4、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar
这将返回给你一个可执行的命令列表。
5、下载项目中所需要的依赖包
composer install

安装swoole
wget https://github.com/swoole/swoole-src/archive/v2.1.3.tar.gz
tar -zxvf v2.1.3.tar.gz
cd swoole-src-2.1.3/

/usr/bin/phpize7.1
./configure --enable-async-redis --enable-mysqlnd --enable-coroutine --enable-openssl --enable-http2
make
make install

安装hiredis

#获取压缩包cd hiredis-0.14.0
wget https://github.com/redis/hiredis/archive/v0.14.0.tar.gz
make -j
make installsudo ldconfig

安装项目:

composer create-project swoft/swoft swoft

或者git下载项目:https://gitee.com/swoft/swoft


进入swoft目录,查看版本信息:

[root@bogon swoft]# php bin/swoft -h

开启http服务:

图片.png

你有可能和我一样的报错,因为端口冲突,解决方案,项目里面如果没有.env的文件,需要你重命名把.env.example重命名为.env文件,需要把http_port=80 修改个不冲突的端口

图片.png


图片.png

刚才你设置的端口,加上你的ip,你就大功告成了

图片.png

这个欢迎页面对应的控制器是:

swoft/app/Controllers/IndexController.php 的 index 方法

控制器与路由的对应关系是通过注解路由来实现的,简单说,就是在控制器和方法的注释中指定路由

图片.png

我们添加一个方法来测试下:

swoft/app/Controllers/DemoController.php

图片.png

图片.png
安装完的感受

swoft将swoole的功能进行了更易使用的封装与调用,并提供了很酷的开发工具。

想要学习swoft的,先将官方文档大概看两遍...

如果觉得官方文档语焉不详,希望我swoft的实例文章能有所帮助。

神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。