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
学习文档:
环境需求:
安装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服务:
你有可能和我一样的报错,因为端口冲突,解决方案,项目里面如果没有.env的文件,需要你重命名把.env.example重命名为.env文件,需要把http_port=80 修改个不冲突的端口
刚才你设置的端口,加上你的ip,你就大功告成了
这个欢迎页面对应的控制器是:
swoft/app/Controllers/IndexController.php 的 index 方法
控制器与路由的对应关系是通过注解路由来实现的,简单说,就是在控制器和方法的注释中指定路由
我们添加一个方法来测试下:
swoft/app/Controllers/DemoController.php
安装完的感受
swoft将swoole的功能进行了更易使用的封装与调用,并提供了很酷的开发工具。
想要学习swoft的,先将官方文档大概看两遍...
如果觉得官方文档语焉不详,希望我swoft的实例文章能有所帮助。
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。