想问下W大佬,为什么Remove WebServer

0

大佬能说下为什么删除这个组件呢,另外有没有什么替代的组件可以使用,低端萌新求解答

已邀请:

xiasha11

赞同来自:

降到低版本

walkor

赞同来自:

后面会单独出一个增强版的mvc框架。
如果你现在需要可以自己写个,代码类似如下:


<?php
use \Workerman\Worker;
use Workerman\Protocols\Http\Request;
use Workerman\Protocols\Http\Response;
use Workerman\Connection\TcpConnection;

require_once __DIR__ . '/vendor/autoload.php';

$web = new Worker("http://0.0.0.0:9988");

// 网站根目录,假设在web下
define('WEBROOT', __DIR__ . DIRECTORY_SEPARATOR . 'web');

$web->onMessage = function (TcpConnection $connection, Request $request) {
$path = $request->path();
if ($path === '/') {
$connection->send(exec_php_file(WEBROOT.'/index.html'));
return;
}
$file = realpath(WEBROOT. $path);
if (false === $file) {
$connection->send(new Response(404, array(), '<h3>404 Not Found</h3>'));
return;
}
// Security check! Very important!!!
if (strpos($file, WEBROOT) !== 0) {
$connection->send(new Response(400));
return;
}
if (\pathinfo($file, PATHINFO_EXTENSION) === 'php') {
$connection->send(exec_php_file($file));
return;
}

if (!empty($if_modified_since = $request->header('if-modified-since'))) {
// Check 304.
$info = \stat($file);
$modified_time = $info ? \date('D, d M Y H:i:s', $info['mtime']) . ' ' . \date_default_timezone_get() : '';
if ($modified_time === $if_modified_since) {
$connection->send(new Response(304));
return;
}
}
$connection->send((new Response())->withFile($file));
};

function exec_php_file($file) {
\ob_start();
// Try to include php file.
try {
include $file;
} catch (\Exception $e) {
echo $e;
}
return \ob_get_clean();
}

// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}

marsColin

赞同来自:

谢谢大佬的回复,我现在也在之前的webserver的源码,非常感谢

要回复问题请先登录注册