能否添加对Lumen的支持?
kvzn opened this issue · 3 comments
kvzn commented
现在使用Lumen搭建Micro Services非常多,希望能支持Lumen。
herojhc commented
顶一下,现在都是微服务啦
liqunx commented
其实只使用其中的发短信,验证短信功能的话,完全能在lumen中使用
- 注册服务提供器,在
bootstrap/app.php
,去弄 - 使用aliases
// 代替laravel aliases
$app->withFacades(true, [
Toplan\PhpSms\Facades\Sms::class => 'PhpSms',
Toplan\Sms\Facades\SmsManager::class => 'SmsManager',
]);
- composer 设置
"psr-4": {
"App\\": "app/",
"Illuminate\\Foundation\\": "app/illuminate/Foundation"
},
然后将 laravel vender包中的Foundation/Bus
文件夹拷贝到上面那个Foundation文件夹内,这样就能保证DispatchesJobs不报错,但是不保证能用
4. laravel-sms.php文件中
'route' => [
'enable' => false, // 只能是false,然后自己去写路由,laravel和lumen路由很不同,特别是没有一些中间件,所以没办法
'prefix' => 'laravel-sms',
'middleware' => ['api'], // 改成这个,不用session,不然报错
],
- 自己补充两个全局辅助函数,不懂怎么补的话建议多看官方文档,熟悉lumen和laravel之后再看此教程
if (! function_exists('config_path')) {
/**
* Get the configuration path.
*
* @param string $path
* @return string
*/
function config_path($path = '')
{
return app()->basePath().'/config'.($path ? DIRECTORY_SEPARATOR.$path : $path);
}
}
if (!function_exists('dump')) {
/**
* @author Nicolas Grekas <p@tchwork.com>
*/
function dump($var)
{
foreach (func_get_args() as $var) {
echo "<pre>";var_export($var);echo "<pre>";
}
}
}
- 路由, 没啥说的
$router->get('sms-info', ['uses' => '\\Toplan\\Sms\\SmsController@getInfo']);
$router->post('verify-code', ['uses' => '\\Toplan\\Sms\\SmsController@postSendCode']);
$router->post('voice-verify', ['uses' => '\\Toplan\\Sms\\SmsController@postVoiceVerify']);
-
使用起来可能有点麻烦
前端传参的时候必须带上:mobile_rule字段,mobile_rule值根据自己需要设置,看laravel-sms.php文件,有说明 -
差不多了,有其它报错的情况请自己解决
skys215 commented
用同作者的phpsms应该就好了吧?