laravel框架常用composer拓展包或拓展服務快速查詢列表

為了方便自己快速添加經過精挑細選的拓展包和拓展服務

1.Laravel-Excel(Excel導入生成)

  • github:Laravel-Excel
  • 官網:Laravel-Excel
  • 功能描述:可以把數據以Excel表格的形式導出,也可以導入Excel表格生成數據并插入數據庫,同時還可以操作csv,pdf等文件。
  • 安裝
//載入拓展包:在composer.json中的required中添加此條并composer update
"maatwebsite/excel": "~2.1.0"
//添加服務:添加到config.php providers數組中
Maatwebsite\Excel\ExcelServiceProvider::class,
//添加別名:添加到config.php aliases數組中
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
//生成配置文件:執行命令
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
  • 使用
//導入excel方法
//$excel_file_path = 你的 Excel 文件存放地址
$excel_data = Excel::load($excel_file_path, function($reader) {
    $excel_data = Excel::load($excel_file_path)->get()->toArray();
    //直接打印內容即可看到效果
    echo 'job.xlsx 表格內容為:';
    dd($excel_data);
});`
//導出excel方法
//導出 Excel 并能直接在瀏覽器下載
//$export_file_name = 要生成的文件名
Excel::create($export_file_name, function ($excel) {
    $excel->sheet('Sheetname', function ($sheet) {
        $sheet->appendRow(['data 1', 'data 2']);
        $sheet->appendRow(['data 3', 'data 4']);
        $sheet->appendRow(['data 5', 'data 6']);
    });
})->download('xls');
// 導出 Excel 并存儲到指定目錄
Excel::create($export_file_name, function ($excel) {
    $excel->sheet('Sheetname', function ($sheet) {
        $sheet->appendRow(['data 1', 'data 2']);
        $sheet->appendRow(['data 3', 'data 4']);
        $sheet->appendRow(['data 5', 'data 6']);
    });
})->store('xls', $object_path);`
  • 注意事項
    如果Excel導入時,中文有問題,需要修改excel.php
//取消使用ascii字符集
'to_ascii' => true,改為false

2.laravel-u-editor(UEditor富文本編輯器)

//載入拓展包:在composer.json中的required中添加此條并composer update
"stevenyangecho/laravel-u-editor": "~1.4"
//添加服務:添加到config.php providers數組中
'Stevenyangecho\UEditor\UEditorServiceProvider'
//生成配置文件:執行命令
php artisan vendor:publish
  • 使用
//在視圖模板中引用ueditor的js和css文件
@include('UEditor::head');
//在視圖模板中創建編輯器的容器
<!-- 加載編輯器的容器 -->
<script id="container" name="content" type="text/plain">
    這里寫你的初始化內容
</script>
<!-- 實例化編輯器 -->
<script type="text/javascript">
    var ue = UE.getEditor('container');
        ue.ready(function() {
        ue.execCommand('serverparam', '_token', '{{ csrf_token() }}');//此處為支持laravel5 csrf ,根據實際情況修改,目的就是設置 _token 值.    
    });
</script>

3.laravel-hashids(id加密)

//載入拓展包:執行命令
composer require vinkla/hashids
//添加服務:添加到config.php providers數組中
Vinkla\Hashids\HashidsServiceProvider::class
//添加別名:添加到config.php aliases數組中
'Hashids' => Vinkla\Hashids\Facades\Hashids::class
//生成配置文件:執行命令
php artisan vendor:publish
//修改hashids.php中的connections的鹽值和加密輸出長度
'connections' => [
        'main' => [
            'salt' => env('APP_KEY'),
            'length' => '16',
        ],
        'alternative' => [
            'salt' => env('APP_KEY'),
            'length' => '6',
        ],
        'recommend' => [
            'salt' => env('APP_KEY'),
            'length' => '6',
        ],
    ],
  • 使用
//在視圖模板中引用ueditor的js和css文件
@include('UEditor::head');
//加密的使用方式
Hashids::encode(123);//返回經過加密后的字符串a9M4pPZqO0rJ6QWK
//解密的使用方式
//注意返回值是數組
Hashids::decode('a9M4pPZqO0rJ6QWK');//返回經過解密后的數組[123]
//同時加密多個參數
Hashids::encode(1,2,3);//M0BKxg8cYSNrVAjp
//解密多個參數的加密字符串
Hashids::decode('M0BKxg8cYSNrVAjp')//返回經過解密后的數組[1,2,3]
//切換不同的鹽值和加密長度
//我們可能需要對多個不同類型的id進行加密,鹽值和返回長度也各有不同。所以config的hashids中的多個數組可以派上用場了。其中main數組是作為默認連接,可以自行添加其他的加密數組。
Hashids::connection('recommend')->encode(1);
Hashids::connection('recommend')->decode("jflkasdjfkasdjfl");

4.intervention/image(圖片壓縮剪切處理)

//載入拓展包:執行命令
composer require intervention/image
//添加服務:添加到config.php providers數組中
Intervention\Image\ImageServiceProvider::class
//添加別名:添加到config.php aliases數組中
'Image' => Intervention\Image\Facades\Image::class
//生成配置文件:執行命令
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
  • 使用
//傳入要處理的圖片文件,調用圖片處理方法即可生成圖片
Image::make($request->file('image'))->size(300,400)->save(public_path() . '/uploads', 30);
  • 注意事項
    保存路徑是絕對路徑,而不是相對路徑;
    無法自動創建目錄,所以要使用File Facade 來創建分類目錄;
    注意保存目錄的權限,如果沒有讀寫的權限,則會保存圖片失敗;

5.laravel-wechat(微信開發封裝)

  • github:laravel-wechat
  • 官網:easywechat
  • 功能描述:簡化微信開發,可直接使用各種封裝好的方法等。
  • 安裝
//載入拓展包:執行命令
composer require "overtrue/laravel-wechat:~3.0"
//添加服務:添加到config.php providers數組中
Overtrue\LaravelWechat\ServiceProvider::class,
//添加別名:添加到config.php aliases數組中
'EasyWeChat' => Overtrue\LaravelWechat\Facade::class,
//生成配置文件:執行命令
php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"
//設置參數:在.env文件中設置微信appid和密鑰
WECHAT_APPID
WECHAT_SECRET
WECHAT_TOKEN
WECHAT_AES_KEY
  • 使用
//解除對該路由的csrf保護,并將路由設置成any
Route::any('/wechat', 'WechatController@serve');
//創建微信實例
 public function serve()
    {
        $wechat = app('wechat');
        $wechat->server->setMessageHandler(function($message){
            return "歡迎關注 overtrue!";
        });
        return $wechat->server->serve();
    }

6.simple-qrcode(二維碼生成)

  • github:simple-qrcode
  • 官網:simple-qrcode
  • 功能描述:簡單快速生成各類二維碼,網站、電話、網址、文字、數字等二維碼。
  • 安裝
//載入拓展包:在composer.json中的required中添加此條并composer update
"simplesoftwareio/simple-qrcode": "~1"
//添加服務:添加到config.php providers數組中
SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class
//添加別名:添加到config.php aliases數組中
'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
  • 使用
//直接在blade視圖模板中生成并顯示二維碼
//此二維碼好像是生成svg類型的矢量圖形
<div class="visible-print text-center">
    {!! QrCode::size(100)->generate(Request::url()); !!}
    <p>掃我回到來源頁</p>
</div>
//在服務器端生成二維碼圖片,并保存
//format是將二維碼格式化成相應格式
QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')

后續將持續更新其他優秀拓展包

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容