您正在查看: Swoole 分类下的文章

swoole框架 - URL映射规则

URL映射规则

swoole框架使用强规则来做URL映射。如下面的URL

php;">http://127.0.0.1/hello/index/

将会映射到 apps/controllers/Hello.php 中的 Hello::index 方法。

自定义URL

修改 apps/configs/rewrite.php ,增加正则配置。具体使用方法请看示例。

$rewrite[] = array(
'regx' => '^/content/([a-z]+)\.html$',
'mvc'  => array('controller' => 'content', 'view' => 'getlist'),
'get'  => 'app',
);
  • $regx需要传入一个正则表达式,符合该正则表达式就会进入此条URL路由
  • $mvc指定对应的controller, view名称
  • $get可以将正则表达式中的子表达式(括号中的表达式)赋值到$_GET参数中

魔法参数

swoole提供了自动参数处理规则。

  • /hello/index/100 ,自动赋值给 $_GET['id'] = 100
  • /hello/index/cid-1-name-rango ,自动赋值到 $_GET['cid'] = 1, $_GET['name'] = 'rango'

swoole框架 - http_server

http_server.php

http服务器跟fpm和apache很像,只是去包含documentRoot中的php文件,没有带有任何额外功能。 与app_server.php不同,http_server.php是没有携带任何swoole Web框架功能的。

php http_server.php

swoole框架 - soa_server

soa_server.php

SOA这个可以很多种叫法,常见的RPC,远程方法调用,中间件平台等等。SOA服务可以跨语言、跨系统、跨网络实现业务逻辑。在后端服务方面非常重要。

swoole_framework提供了一个高性能SOA服务器框架,并且提供了一套可并行调用服务器端的Client实现。

具体代码:

  • examples/soa_server.php
  • examples/soa_client.php

swoole框架 - websocket_server

websocket_server.php

服务器端: websocket_server.php

客户端: 浏览器使用websocket_client.html,不支持websocket的浏览器,如IE6-9,使用flash_websocket.swf进行兼容。 PHP脚本中使用websocket_client.php

swoole框架 - 目录规范

目录规范

假设根目录为$ROOT。

$ROOT/apps

应用程序代码,此目录中的代码是公用的,包括类,配置,模板,控制器,Model等。此目录不得放置静态文件,如js, css, jpg, html等,必须全部为.php文件。此目录不允许http直接访问。

  • $ROOT/apps/controllers Web应用的控制器类代码
  • $ROOT/apps/models 数据模型封装类代码
  • $ROOT/apps/configs 配置文件,通过$php->config['db']['master'] 这样来访问
  • $ROOT/apps/classes 类库,这里存放所有用户定义的类,必须符合psr-0规范,文件名必须为 {类名}.php,顶层命名空间必须为App。
  • $ROOT/apps/templates 模板文件目录

命名空间:如 new App\Hello\Test 类,会映射到 $ROOT/apps/classes/Hello/Test.php
配置文件:如 $php->config['db']['master'] 或 swoole::getInstance()->config['db']['master'] 会映射到$ROOT/apps/configs/db.php文件,db.php中必须返回数组,key为master。
数据模型:model('UserInfo')或者$php->model->UserInfo 会映射到$ROOT/apps/models/UserInfo.php

$ROOT/static

静态文件目录,比如js, css, jpg, html等。此目录允许http直接访问。

$ROOT/index.php

web网站单一入口文件,可直接放到根目录,或者单独建立目录存放,如$ROOT/webroot/index.php

$ROOT/server.php

服务器程序启动入口。