在 Laravel 5.5+ 应用中配置使用阿里云提供的短信服务及文件存储服务(OSS)
  • 更新时间:2024-04-19 18:24:09
  • 分享
  • 发布时间:6年前
  • 6333

配置短信服务

基于Laravel框架的使用方法

  1. 安装

composer require mrgoon/aliyun-sms dev-master
  1. config/app.php中添加如下代码

'providers' => [

    //......此处省略大量代码

    /**
     * 阿里云短信
     */
    Mrgoon\AliSms\ServiceProvider::class,
],

//同时,可以选择性添加aliases
'aliases' => [

    //......此处省略大量代码

    /**
     * 阿里云短信
     */
    'AliSms'=>Mrgoon\AliSms\ServiceProvider::class,
],
  1. 添加系统服务

php artisan vendor:publish
#这里要选择对应的编号
  1. 上一步会新增config/aliyunsms.php 文件

'access_key'        => env('ALIYUN_ACCESSKEYID'), // accessKey
'access_secret'     => env('ALIYUN_ACCESSKEYSECRET'), // accessSecret
'sign_name'         => env('ALIYUN_SMS_SIGN_NAME'), // 签名
  1. .env文件中添加环境变量:

ALIYUN_ACCESSKEYID=your access key
ALIYUN_ACCESSKEYSECRET=your secret key
ALIYUN_SMS_SIGN_NAME=sign name
  1. 使用

$aliSms = new AliSms();
$response = $aliSms->sendSms('phone number', 'SMS_code', ['name'=> 'value in your template']);
//dump($response);

非laravel框架的使用方法

  1. 加载方式通过composer,不变

  2. 使用样例代码如下:

$config = [
    'access_key' => 'your access key',
    'access_secret' => 'your access secret',
    'sign_name' => 'your sign name',
];

    $aliSms = new Mrgoon\AliSms\AliSms();
    $response = $sms->sendSms(
        'phone number', 
        'tempplate code', 
        ['name'=> 'value in your template'], 
        $config
    );

配置图片上传OSS

  1. 安装

composer require jacobcyl/ali-oss-storage
  1. config/app.php中添加如下代码

'providers' => [

    //......此处省略大量代码

    /**
     * 阿里云OSS
     */
    Jacobcyl\AliOSS\AliOssServiceProvider::class,
],

//同时,可以选择性添加aliases
'aliases' => [

    //......此处省略大量代码

    /**
     * 阿里云OSS
     */
    'AliOSS'=>Jacobcyl\AliOSS\AliOssServiceProvider::class,
],
  1. 编辑配置文件config/filesystems.php

'default' => env('FILESYSTEM_DRIVER', 'local'),
.....

'disks' => [

....
        'oss' => [
            'driver' => 'oss',
            'access_id' => env('ALIYUN_ACCESSKEYID'),
            'access_key' => env('ALIYUN_ACCESSKEYSECRET'),
            'bucket' => env('ALIYUN_BUCKET'),
            'endpoint' => env('ALIYUN_ENDPOINT'),

            //'endpoint_internal' => '<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com>',

            //'cdnDomain' => '<CDN domain, cdn域名>',

            'ssl' => false,
            'isCName' => false,
            'debug' => false,
        ],

    ],
  1. .env文件中添加环境变量:

ALIYUN_ACCESSKEYID=your access key
ALIYUN_ACCESSKEYSECRET=your secret key
ALIYUN_BUCKET=your bucket
ALIYUN_ENDPOINT=your endpoint

配置ueditor + OSS

  1. 安装

composer require ilimpid/laravel-u-editor
  1. config/app.php中添加如下代码

'providers' => [

    //......此处省略大量代码

    /**
     * 百度编辑器
     */
    Stevenyangecho\UEditor\UEditorServiceProvider::class,
],

//同时,添加aliases
'aliases' => [

    //......此处省略大量代码

    /**
     * 百度编辑器
     */
    'UEditor'=>Stevenyangecho\UEditor\UEditorServiceProvider::class,
],
  1. 添加系统服务

php artisan vendor:publish
  1. 上一步会新增config/UEditorUpload.php 文件

'mode' => 'aliyun',//上传方式,local 为本地   qiniu 为七牛  aliyun为阿里云

'aliyun' => [
    'accessKeyId' => env('ALIYUN_ACCESSKEYID'),
    'accessKeySecret' => env('ALIYUN_ACCESSKEYSECRET'),
    'endpoint' => env('ALIYUN_ENDPOINT'),
    'url' => 'http://'.env('ALIYUN_BUCKET').'.'.env('ALIYUN_ENDPOINT'),
    'bucket' => env('ALIYUN_BUCKET'),
    'directory' => 'images/'.date('Ymd',time()),
],

//注意:编辑器上传图片的时候会在本地保存一张,下面配置必须设置,images必须保持一致

/* 上传图片配置项 */
'upload' => [
    /* 上传保存路径,可以自定义保存路径和文件名格式 */
    "imagePathFormat" => "/storage/images/{yyyy}{mm}{dd}/{time}{rand:6}", 
],
  1. .env文件中添加环境变量:

ALIYUN_ACCESSKEYID=your access key
ALIYUN_ACCESSKEYSECRET=your secret key
ALIYUN_BUCKET=your Bucket key
ALIYUN_ENDPOINT=your Endpoint key

非laravel-admin使用

@include(UEditor::head)

<div class="col-sm-10">
    <script id="ueditor"></script>
    <script>
        var ue = UE.getEditor("ueditor");
        ue.ready(function () {
            //由于Laravel有防csrf防伪造攻击的解决所以加上此行
            ue.execCommand(serverparam, _token, {{ csrf_token() }});
        });
    </script>
</div>

基于 laravel-admin 使用

  1. 增加组件文件app/Admin/Extensions/Form/uEditor.php

<?php

namespace App\Admin\Extensions\Form;
use Encore\Admin\Form\Field;

class uEditor extends Field
{
    // 定义视图
    protected $view = 'admin.uEditor';

    // css资源
    protected static $css = [];

    // js资源
    protected static $js = [
        'laravel-u-editor/ueditor.config.js',
        'laravel-u-editor/ueditor.all.min.js',
        'laravel-u-editor/lang/zh-cn/zh-cn.js'
    ];

    public function render()
    {
        $this->script = <<<EOT
        //解决第二次进入加载不出来的问题
        UE.delEditor("ueditor");
        // 默认id是ueditor
        var ue = UE.getEditor('ueditor', {
            // 自定义工具栏
            toolbars: [
                ['bold', 'italic', 'underline', 'strikethrough', 'blockquote', 'insertunorderedlist', 'insertorderedlist', 'justifyleft', 'justifycenter', 'justifyright', 'link', 'insertimage', 'source', 'fullscreen']
            ],
            elementPathEnabled: false,
            enableContextMenu: false,
            autoClearEmptyNode: true,
            wordCount: false,
            imagePopup: false,
            autotypeset: {indent: true, imageBlockLine: 'center'}
        }); 
        ue.ready(function () {
            ue.execCommand('serverparam', '_token', '{{ csrf_token() }}');
        });

EOT;
        return parent::render();
    }
}
  1. 增加视图文件resources/views/admin/uEditor.blade.php

<div class="form-group {!! !$errors->has($errorKey) ?: 'has-error' !!}">
    <label for="{{$id}}" class="col-sm-2 control-label">{{$label}}</label>
<div class="col-sm-8">
    @include('admin::form.error')
    {{-- 这个style可以限制他的高度,不会随着内容变长 --}}
    <textarea type='text/plain' style="height:400px;" id='ueditor' id="{{$id}}" name="{{$name}}" placeholder="{{ $placeholder }}" {!! $attributes !!}  class='ueditor'>
            {!! old($column, $value) !!}
        </textarea>
    @include('admin::form.help-block')
</div>
</div>
{{-- 注意:如果你实用script标签有一些奇怪的问题,更换textarea就可以解决了。 --}}
  1. 然后注册进laravel-admin,在app/Admin/bootstrap.php中添加以下代码:

<?php

/**
 *
 */

use App\Admin\Extensions\Form\uEditor;
use Encore\Admin\Form;

Form::extend('ueditor', uEditor::class);

//Encore\Admin\Form::forget(['map', 'editor']);
  1. 再控制器的form()里面调用

$form->ueditor('content', '内容')->rules('required');


我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!

本文章出于推来客官网,转载请表明原文地址:https://www.tlkjt.com/marketing/76.html
推荐文章

在线客服

扫码联系客服

3985758

回到顶部