PR一個 composer包過程記錄

liaosp發表於2021-01-20

在這裡插入圖片描述

看到一位朋友的 enum包,感覺還不錯。

因為在實際開發中 我們使用 BenSampo/laravel-enum這個包去管理列舉。

在標準化專案中(比如國際化)其實這個包挺好的。但是在小專案中,先新增列舉類,再去enums.php 中新增翻譯,讓人感覺很繁瑣~

像這樣子:
在這裡插入圖片描述
所以對這個註解讀取“翻譯”的這個包,我很感興趣。

但是問題來了,這個包裡面只能讀取列舉翻譯,如果我需要一個陣列呢?

像這樣:

AppStatus::toSelectArray()

我想用這個包,但是我又想用到toArray,我滿足這兩個條件,我在小專案中就可以操刀就幹,而又不失優雅。

所以,我決定fork一份自己改一下,新增toArray 的方法

fork好了之後,在專案根目錄中新增 一個 packages的資料夾,在這個資料夾中,git clone github.com/liaoshengping/x-phalcon...

composer.json 中新增,本地目錄

    "repositories": [
        {
            "type": "path",
            "url": "packages\\x-phalcon-enum"
        }
    ]

接下來

composer require limingxinleo/x-phalcon-enum dev-master

在vendor 會生成一份 和packages 一樣的 檔案。這時已經對映到了 packages ,只需要修改其中的檔案就可以了。

在 Enum.php 新增一個toArray 的靜態方法。

    public static function toArray(){
        $ref = new ReflectionClass(static::class);
        $properties = $ref->getDefaultProperties();
        $_adapter = new ReflectionAdapter(static::class);
        $arr = $_adapter->getAnnotationsByName('Message', $properties);
        return $arr;
    }

push 到 自己的master 上,建立一個 Pull Request,如圖:

在這裡插入圖片描述

等大佬檢查程式碼,如果透過則合併。

這樣就完成了我第一個pr
在這裡插入圖片描述

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章