php从入门到放弃封面,SWOOLE 从入门到放弃之写个小框架(六)

好,能跑起来就说明两个问题,

一,加载器成功了,

二,我没蒙错。

接下来就开始来点稍干的了,先看代码

public function onRequest($request,$response){

$response->end("hello");

}

这个 onRequest 是HTTP服务的核心,没有它,就没法接收来自客户端的请求,也就没法给客户端返回正确的内容,最重要的是如果没有它,HTTP服务跑不起来。

这个回调包含两个参数 $request和$response ,如字面意思 $request就是HTTP请求对像接收到的客户端请求的相关信息,包含GET,POST,COOKIE,HEADER等,看文档。$response就是服务端给客户端回应时对象,看文档。

接下来就来处理它。

首先,我们要有一个总调度,它主要实现的功能就是接收这两个参数,然后路由分析路径,并根据返回的路由信息加载对应的项目文件。看到了吗,加载,这两个字终于用上了。

创建文件 frame/Lib/App.php,贴代码

namespace Piz;

class App

{

//实例

private static $instance;

//防止被一些讨厌的小伙伴不停的实例化,自己玩。

private function __construct ()

{

}

//还得让伙伴能实例化,并且能用它。。

public function get_instance(){

if(is_null (self::$instance)){

self::$instance = new self();

}

return self::$instance;

}

public function http($request,$response){

print_r($request);

$response->end(var_export ($response,TRUE));

}

}

修改frame/Lib/Server.php,再贴

namespace Piz;

class Server

{

public $server;

public function __construct(){

$this->server = new \swoole_http_server('0.0.0.0',9501);

$this->server->on('start', [$this, 'onStart']);

$this->server->on('request' ,[$this,'onRequest']);

$this->server->start();

}

public function onStart($server){

echo "服务启动 http://0.0.0.0:9501",PHP_EOL;

}

public function onRequest($request,$response){

App::get_instance()->http ($request,$response);

}

public function onClose($server,$fd){

}

}

运行启动文件 /start.php,看控制台

root@localhost:/piz$ php start.php

服务启动 http://0.0.0.0:9501

Swoole\Http\Request Object

(

[fd] => 1

[header] => Array

(

[host] => 192.168.1.111:9501

[connection] => keep-alive

[upgrade-insecure-requests] => 1

[user-agent] => Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

[accept] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

[accept-encoding] => gzip, deflate

[accept-language] => zh-CN,zh;q=0.9

)

[server] => Array

(

[request_method] => GET

[request_uri] => /

[path_info] => /

[request_time] => 1523500869

[request_time_float] => 1523500869.6587

[server_port] => 9501

[remote_port] => 2751

[remote_addr] => 192.168.1.100

[master_time] => 1523500869

[server_protocol] => HTTP/1.1

[server_software] => swoole-http-server

)

[request] =>

[cookie] =>

[get] =>

[files] =>

[post] =>

[tmpfiles] =>

)

看浏览器

AAffA0nNPuCLAAAAAElFTkSuQmCC

OK,漂亮。

小伙伴们不要在意我的host,我是在WIN10上开发,VBOX上运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值