laravel二维码生成

在 config/app.php 注册serviceProvider

SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class

在 config/app.php 添加Facades

'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class

在Controller中引入

use SimpleSoftwareIO\QrCode\Facades\QrCode;

直接生成图片

$str = QrCode::size(300)->generate('Make me into a QrCode!');

将图片转成base64编码

$qrcode = base64_encode(QrCode::format('png')->size(300)->generate($encode));

相关资料

composer-simple-qrcode
github-simple-qrcode
Laravel中使用Simple Qrcode生成二维码
Class ‘QrCode’ not found Or add 'use SimpleSoftwareIO\QrCode\Facades\QrCode; '. If you wish to call it from your controller.

laravel-mews/captcha-图形验证码

php-composer: composer require mews/captcha

Tip: 默认是session方式保存图形验证码值. 见 README.md

API方式调用

Route::get('captcha', function () {
    $res = app('captcha')->create('default', true);
    return $res; // 用JSON格式后输出, 不然有些字符会被转义. 
});

Route::post('check_captcha', function (Request $req) {
    $captcha = $req->input('captcha');
    $key = $req->input('key');
    $res = captcha_api_check($captcha, $key);
    dump($res);
});

app(‘captcha’)->create-代码位置

captcha-函数列表

相关资料

Validate capatcha in api middleware 支持API方式图形验证码
mews/captcha 图片验证码

Laravel路由是如何实现的原理是什么

项目中使用了laravel-modules|dingo-api 在模块下的Request规则中无法使用. 怀疑和路由有关.

了解其路由原理后, 单独建立一个路由文件. 是否可以和项目自带的路由文件一样的功能.

Laravel是如何知道加载哪个路由文件?

Route::group() ‘prefix’ => ‘ksapi’, 中设置的前缀生效, $api->group() 中设置的前缀不生效.

开始查找为什么设置prefix不生效?

文件: vendor/dingo/api/src/Routing/Router.php var_dump($attributes['prefix']);
输出内容

string(3) "api"
string(9) "api/ksapi"

发现原来URL上还有加到api 之前的URL:http://{{host}}/ksapi/version 修改后URL:http://{{host}}/api/ksapi/version

现在请求验证正常, 随带把之前的版本访问问题也解决了, 但是api/ksapi, 如何可以只用ksapi就行?

相关资料

深入浅出 Laravel 路由执行原理

laravel-caffeinated-modules渲染模板时怎么可以不带模块名?

return view(' wap::Index.index '); 想要变成自动根据模块名来渲染对应的模板 return view('Index.index ');


代替方案: 在模块下的控制器的一个基础控制器里重写下view, 然后其他控制器继承后调用.

    /**
     * 读取当前wap模块下的模板
     */
    public function _view($view = null, $data = [], $mergeData = [])
    {
        $view = $view ? 'wap::' . $view : null;
        return view($view, $data, $mergeData);
    }

workerman与laravel-command模式下的session

imf

env
– laravel-5.5
– workerman-3.5


workerman中能否获取session?

workerman中是可以使用 $_SERVER、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_REQUEST 6-可用的超全局变量, 但是session不和其他框架互通. tip: php cli不支持原生session cookie接口.

关于workerman中使用全局变量(类位置-Workerman\Protocols\Http)

use Workerman\Protocols\Http;
Http::setCookie(..);
Http::sessionStart(); //webserver里sessionStart后才能用$_SESSION
$_SESSION['xx']...
$_SERVER。。。

laravel command 下如何获取session. 是只能配何redis上才能在command模式下使用session?

查阅资料

workerman社区-session问题