下面由composer教程欄目帶大家介紹pr一個composer包過程記錄 ,希望對需要的朋友有所幫助!
看到一位朋友的 enum包,感覺還不錯。
因為在實際開發中 我們使用 ?BenSampo/laravel-enum(https://github.com/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": "packagesx-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? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?