2024年2月

介绍: https://blog.thetbw.xyz/archives/share-about-mis-dev-tunnels

长话短说
地址: https://learn.microsoft.com/zh-cn/azure/developer/dev-tunnels/get-started

安装使用

winget install Microsoft.devtunnel
devtunnel user login
devtunnel host -p 8080
限制:

名称 限制
带宽 5 GB 每用户
隧道数 10 每用户
活动连接 20 每端口
端口数 10 每个隧道
http 请求速率 1500/min 每端口
速率 最高 20 MB/s 每隧道
最大 http 请求体大小 16 MB


这适用于我最新版本的Laravel 5.7。注意我是如何包含__env变量的,这样@include、@foreach等函数就可以工作了。

public static function renderBlade($string, $data = null)
{

if (!$data) {
$data = [];
}
$data['__env'] = app(\Illuminate\View\Factory::class);
$php = Blade::compileString($string);
$obLevel = ob_get_level();
ob_start();
extract($data, EXTR_SKIP);
try {
eval('?' . '>' . $php);
} catch (Exception $e) {
while (ob_get_level() > $obLevel) {
ob_end_clean();
}
throw $e;
} catch (Throwable $e) {
while (ob_get_level() > $obLevel) {
ob_end_clean();
}
throw new FatalThrowableError($e);
}
return ob_get_clean();

}
原来我没有将参数数组传递给解析Blade结构的方法。我的假设是Mail::send方法负责使变量可用,它将变量作为第二个参数。我也不得不使用extract($args, EXTR_SKIP)。

$generated = Blade::compileString($string);

ob_start(); extract($args, EXTR_SKIP)

try
{

eval($generated);

}
catch (\Exception $e)
{

ob_get_clean(); throw $e;

}

$content = ob_get_clean();

return $content;