Composer釋出自己的外掛包
要釋出自己的Composer 首先得整清楚composer.json檔案的內容,下面是composer.json 的介紹:
{
"name": "nancheng/pfinal-array", //包的名稱
"description": "This is a PHP array manipulation middleware", //包的功能描述
"authors": [ //作者資訊
{
"name": "南丞",
"email": "Lampxiezi@163.com",
"homepage": "http://friday-go.cc/"
}
],
"homepage":"https://github.com/Neroxiezi/pfinal-array", //包的原始碼地址
"license": "MIT", //遵循的協議
"keywords": [ //包的關鍵字
"pfinal",
"南丞",
"Q哥",
"array",
"php-array"
],
"require": { //包的一些依賴
"php": ">=5.4.0"
},
"autoload": { //自動載入
"psr-4": { //自動使用的 psr-4 格式
"pf\\arr\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"example\\": "example"
}
}
}
複製程式碼
弄清楚composer.json 以後 我們接下來開始整自己的包.
包的目錄結構:
pfinal-array
|
|-- src 包原始碼
| |-- build 功能程式碼
| |-- PFarr.php 包的門面
|
|-- example 一些例項
|
|-- README.md
|
|-- composer.json
複製程式碼
上面是我自己的包目錄結構。在我們新建包的時候,一開始是沒有composer.json這個檔案的。
在包中生成自己的composer.json
- 執行
composer init
命令,,如下圖所示:
輸入你想要生成的包名,回車:nangcheng/pfinal-array。如下圖:
輸入你的包的描述(這裡可以用英文裝一個逼),回車:
這裡讓你輸入作者,我直接n 跳過,後期手工去填寫自己牛逼的簽名. 然後一路回車到這裡:
上面這兩條告訴你,有需要的依賴沒有,我沒有依賴所以就直接輸入 n 回車了。
然後接著回車,最後你發現你的資料夾中會生成一個composer.json 的檔案了。
開啟composer.json 內容如下:
{
"name": "nancheng/pfinal-array",
"authors": [
{
"name": "LXZ",
"email": "Lampxiezi@163.com"
}
],
"require": {}
}
複製程式碼
修改composer.json 檔案
- authors 加入牛逼哄哄的 簽名
"authors": [
{
"name": "南丞",
"email": "Lampxiezi@163.com",
"homepage": "http://friday-go.cc/"
}
],
複製程式碼
-
其他的如上面的composer.json 內容一樣。
-
主要在autoload 上:
"autoload": { //自動載入
"psr-4": { //自動使用的 psr-4 格式
"pf\\arr\\": "src/"
}
}
複製程式碼
注意: 自動載入的時候 我們 用的是psr-4 至於什麼是psr-4 那各位大爺就自行了解吧。pf\arr\ 這個 是我原始碼中的名稱空間. src 是我原始碼的目錄,程式碼如下:
<?php
namespace pf\arr;
use pf\arr\build\Base;
class PFarr {
protected $pf_array_link;
protected function driver()
{
$this->pf_array_link = new Base();
return $this;
}
public function __call($method, $params)
{
if (is_null($this->pf_array_link)) {
$this->driver();
}
if (method_exists($this->pf_array_link, $method)) {
return call_user_func_array([$this->pf_array_link, $method], $params);
}
}
public static function single()
{
static $pf_array_link;
if (is_null($pf_array_link)) {
$pf_array_link = new static();
}
return $pf_array_link;
}
public static function __callStatic($name, $arguments)
{
return call_user_func_array([static::single(), $name], $arguments);
}
}
複製程式碼
修改完以後, 執行 composer update
命令 Ok;
釋出
然後使用 git 把專案釋出到 github上,git怎麼用那就看 git基本操作。
推送到github以後,上 composer包官網連結 ,使用github登入, 登入以後:
點選他會出來你釋出的包列表:
點選上圖中的show API Token 按鈕 生成 所對應的Token,然後複製Token.
第二步:
去github 網站你對用的專案中 操作如下圖所示:
在上圖的搜尋框中搜尋 Packagist 然後點選編輯如下圖所示:
token 填寫你上面複製的Token
第三步:
如下圖所示:
點選submit(Check的使用會檢查是否已經純在這個目錄了,如果存在的話,需要重新改一下composer.json檔案中的name配置)
OK 到此 Composer包釋出完畢
順便放上我的包地址: nancheng/pfinal-array