接上篇。
继续改进代码。
在views下创建目录user
里面增加一个文件 go.html,内容如下:
<html>
<body>
code:<?php echo $code?>
<hr>
</body>
控制器中文件增加user2.php
<?php
class user2{
function index($request){
$depts=array("code"=>200,"msg"=>"index success!");
//echo json_encode($depts);
return ($depts);
}
function go($request){
$depts=array("code"=>200,"msg"=>"module user go success!","module"=>$request->sessionId(),"aaa"=>$request->session()->get("aaa"),"get"=>$request->get("a"));
//echo json_encode($depts);
return mvc_display($depts,"app","user","go");
}
}
mvc_display位于主文件http_route_view.php中,调用方法类似,内容如下:
<?php
chdir(dirname(__FILE__));//先切换到正确的目录
include("../inc/para.php");
//include("pdo_conn.php");include("pdo_conn_init.php");
require_once("vendor/autoload.php");
use Workerman\Worker;
use Workerman\Protocols\Http\Response;
//require_once './Workerman/Autoloader.php';
define('APPPATH',__dir__."/");
function mvc_display($data_arr=array(),$M="app",$C,$A){
if(is_array($data_arr))
foreach($data_arr as $k=>$v){
$$k=$v;
}
$ph=APPPATH."app/views/".$C."/".$A.".html";
ob_start();
include($ph);
$content=ob_get_contents();
@ob_end_clean();
return $content;
}
//include("mvccore/core.php");
$worker = new Worker('http://0.0.0.0:8888');
$i=0;
$worker->onMessage = function($connection, $request)
{
global $i;
$i++;
$mvc_urls=explode("/",$request->path());
$mvc_len=count($mvc_urls);
$c="app";
$a="index";
if($mvc_len>1){
if($mvc_len==2&&!empty($mvc_urls[0])){$c=!empty($mvc_urls[0])?$mvc_urls[0]:"app";$a=!empty($mvc_urls[1])?$mvc_urls[0]:"index";}
if($mvc_len==3&&empty($mvc_urls[0])){$c=!empty($mvc_urls[1])?$mvc_urls[1]:"app";$a=!empty($mvc_urls[2])?$mvc_urls[2]:"index";}
$request->session()->set("aaa",2222);
if(file_exists("app/controllers/".$c.".php")){
include_once("app/controllers/".$c.".php");
$cls=new $c();
if(method_exists($c,$a)){
$return=$cls->$a($request);
if(file_exists("app/views/".$c."/".$a.".html"))
$response = new Response(200, [
'Content-Type' => 'text/html',
'X-Header-One' => 'Header Value'
], $return);
else
$response = new Response(200, [
'Content-Type' => 'text/json',
'X-Header-One' => 'Header Value'
], json_encode($return));
$connection->send($response);
}
else
{
$response = new Response(404, [
'Content-Type' => 'text/html',
'X-Header-One' => 'Header Value'
], "module:".$c." action:".$a." 404 can't found!");
$connection->send($response);
}
}else
{
$response = new Response(404, [
'Content-Type' => 'text/html',
'X-Header-One' => 'Header Value'
], "module file not found 404 error!");
$connection->send($response);
}
}else
{
print_r($mvc_urls);
$response = new Response(404, [
'Content-Type' => 'text/html',
'X-Header-One' => 'Header Value'
], "module not found mvc_len error!");
$connection->send($response);
}
};
// 运行worker
Worker::runAll();
即可实现访问
访问地址:http://localhost:8888/user2/go