Composer 包使用

Wsmallnews發表於2018-09-12

laravel/socialite

提供與 Facebook,微博,谷歌,LinkedIn,GitHub等 OAuth認證。

github 地址
https://github.com/laravel/socialite
安裝
composer require laravel/socialite

guzzle/guzzle | guzzlehttp/guzzle

是一個PHP HTTP客戶端,可以很容易地傳送HTTP請求和瑣碎與Web服務整合

github 地址
https://github.com/guzzle/guzzle
安裝
見github
文件
http://guzzlephp.org/
版本
Version Status Packagist Namespace Repo Docs PSR-7 PHP Version
3.x EOL guzzle/guzzle Guzzle v3 v3 No >= 5.3.3
4.x EOL guzzlehttp/guzzle GuzzleHttp v4 N/A No >= 5.4
5.x Maintained guzzlehttp/guzzle GuzzleHttp v5 v5 No >= 5.4
6.x Latest guzzlehttp/guzzle GuzzleHttp v6 v6 Yes >= 5.5

Baum\Node

Baum是Laravel 5的Eloquent ORM 的巢狀集模式的實現, 無限級分類。

github 地址
https://github.com/etrepat/baum
使用例項
  • ancestorsAndSelf 獲取所有祖先鏈節點,包括當前鏈節點。
  • ancestors 獲取所有祖先鏈節點,不包括當前鏈節點。
$articleCats = $articleCats->where('id', 5)->first()->ancestorsAndSelf()->get()->toArray();

Array
(
    [0] => Array
        (
            [value] => 1
            [parent_id] => 0
            [label] => 第一個一級分類
        )
    [1] => Array
        (
            [value] => 4
            [parent_id] => 1
            [label] => 二級分類
        )
    [2] => Array        // 這個是自己
        (
            [value] => 5
            [parent_id] => 4
            [label] => 三級分類
        )
)
  • siblingsAndSelf 獲取自己兄弟接點,同一父親,包括自己
  • siblings 獲取自己兄弟接點,同一父親,不包括自己
$articleCats = $articleCats->where('id', 1)->first()->siblingsAndSelf()->get()->toArray();

Array
(
    [0] => Array
        (
            [value] => 1
            [parent_id] => 0
            [label] => 第一個一級分類
        )
    [1] => Array            // 自己
        (
            [value] => 2
            [parent_id] => 0
            [label] => 第二個一級分類
        )
    [2] => Array
        (
            [value] => 3
            [parent_id] => 0
            [label] => 第三個一級分類
        )
)
  • leaves 最後一個沒有孩子的節點
$articleCats = $articleCats->where('id', 1)->first()->leaves()->get()->toArray();

Array
(
    [0] => Array            // 沒有子節點
        (
            [parent_id] => -> ...->... 1
            [value] => 5
            [label] => 三級分類
        )
)
  • descendantsAndSelf 所有子節點,包括自己
  • descendants 所有子節點,不包括自己
$articleCats = $articleCats->where('parent_id', 0)->first()->descendantsAndSelf()->get()->toArray();

Array
(
    [0] => Array        // 自己
        (
            [parent_id] => 0
            [value] => 1
            [label] => 第一個一級分類
        )
    [1] => Array
        (
            [parent_id] => 1
            [value] => 4
            [label] => 二級分類
        )
    [2] => Array
        (
            [parent_id] => 4
            [value] => 5
            [label] => 三級分類
        )
)
  • 獲取所有 分類包括所有子節點
  • toHierarchy() 按照 層級組合結果
$articleCats = ArticleCat::where('parent_id', 0)->get();

foreach($articleCats as $key => $descendant) {
    $articleCats[$key]->children = array_values($descendant->getDescendants()->toHierarchy()->toArray());
}

Array
(
    [0] => Array
        (
            [id] => 1
            [parent_id] => 0
            [value] => 1
            [label] => 第一個一級分類
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 4
                            [parent_id] => 1
                            [value] => 4
                            [label] => 二級分類
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 5
                                            [parent_id] => 4
                                            [value] => 5
                                            [label] => 三級分類
                                            [children] => Array
                                                (
                                                )
                                        )
                                )
                        )
                )
        )

    [1] => Array
        (
            [id] => 2
            [parent_id] => 0
            [value] => 2
            [label] => 第二個一級分類
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 6
                            [parent_id] => 2
                            [value] => 6
                            [label] => 又一個二級分類
                            [children] => Array
                                (
                                )
                        )
                )
        )
    [2] => Array
        (
            [id] => 3
            [parent_id] => 0
            [children] => Array
                (
                )
            [value] => 3
            [label] => 第三個一級分類
        )
)

simplesoftwareio/simple-qrcode

外掛是基於 Laravel 5 的二維碼生成外掛

github 地址
https://github.com/SimpleSoftwareIO/simple-qrcode
使用例項
// 生成二維碼,儲存成 svg ,svg 為預設格式
QrCode::generate('Hello,LaravelAcademy!', public_path('qrcodes/qrcode.svg'));

// 生成png 格式二維碼,儲存到本地,並且 中間有圖示,大小,顏色,背景,邊距,編碼
QrCode::format('png')
    ->encoding('UTF-8')
    ->size(200)
    ->color(255, 0, 255)
    ->backgroundColor(255, 255, 0)
    ->margin(1)
    ->merge('/public/images/no_pic.jpg', .15)
    ->generate('Hello,LaravelAcademy!', public_path('qrcodes/qrcode.png'));

// 生成 png 格式的二維碼 以png 方式返回http 相應
$qrcode = QrCode::format('png')->size(300)->generate('this is png encode!');
return response($qrcode, 200)->header('Content-Type', "png");

相關文章