Swoole Framework 是使用纯 PHP 代码开发的 Web 框架,其中内置应用服务器,并提供了统一注册树、数据库操作、模板、缓存、日志、队列、上传、用户管理等功能。使用内置应用服务器,可节省每次请求代码带来的额外开销,另外连接池可以很好的帮助存储系统节省连接资源。
Swoole Framework 是一套设计精巧能有效提高开发效率的PHP框架,Swoole Framework 拥有统一且唯一的全局对象,类似Java的注册树,可以挂载常用的对象,如数据库、模板引擎、缓存系统、日志系统、事件处理系统等。
Swoole Framework 提供了 MVC 的 apps 结构,通过 Controller 的继承实现业务逻辑的封装,通过Model的继承实现数据库操作的封装,View使用Smarty模板引擎实现页面现实逻辑的封装。
与其他 Web 框架不同,Swoole Framework 是一个全功能的后端服务器框架。除了 Web 方面的应用之外,更广泛的后端程序中都可以使用。
PHP版本需求: PHP5.4/PHP5.5/PHP5.6/PHP7.0/PHP7.1,不支持PHP5.3
使用内置应用服务器,可节省每次请求代码来的额外消耗。连接池技术可以很好的帮助存储系统节省连接资源。
- $ git clone https://github.com/swoole/framework
- $ cd framework
- $ composer update
Swoole Framework 应用服务器,需要安装 swoole 扩展。
- pecl install swoole
然后修改 php.ini 加入 extension=swoole.so
- <?php
- require __DIR__.'/libs/lib_config.php';
-
- $AppSvr = new Swoole\Protocol\AppServer();
- $AppSvr->loadSetting(__DIR__."/swoole.ini"); //加载配置文件
- $AppSvr->setAppPath(__DIR__.'/apps/'); //设置应用所在的目录
- $AppSvr->setLogger(new Swoole\Log\EchoLog(false)); //Logger
-
- /**
- *如果你没有安装swoole扩展,这里还可选择
- * BlockTCP 阻塞的TCP,支持windows平台,需要将worker_num设为1
- * SelectTCP 使用select做事件循环,支持windows平台,需要将worker_num设为1
- * EventTCP 使用libevent,需要安装libevent扩展
- */
- $server = new \Swoole\Network\Server('0.0.0.0', 8888);
- $server->setProtocol($AppSvr);
- $server->daemonize(); //作为守护进程
- $server->run(array('worker_num' => 1, 'max_request' => 5000));
- php server.php
- [2013-07-09 12:17:05] Swoole. running. on 0.0.0.0:8888
在浏览器中打开 http://127.0.0.1:8888/
- server {
- listen 80;
- server_name www.swoole.com;
- root /data/wwwroot/www.swoole.com;
-
- location / {
- if (!-e $request_filename){
- proxy_pass http://127.0.0.1:9501;
- }
- }
- }
- <VirtualHost *:80>
- ServerName www.swoole.com
- DocumentRoot /data/webroot/www.swoole.com
- DirectoryIndex index.html index.php
-
- <Directory "/data/webroot/www.swoole.com">
- Options Indexes FollowSymLinks
- AllowOverride None
- Require all granted
- </Directory>
-
- # ProxyPass /admin !
- # ProxyPass /index.html !
- # ProxyPass /static !
- # ProxyPass / http://127.0.0.1:9501/
-
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
- RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
- RewriteRule ^(.*)$ http://127.0.0.1:9501$1 [L,P]
- </IfModule>
- </VirtualHost>