composer安裝本身的包

composer的出現,使得PHPer能夠像Java同樣更加方便的管理代碼。在composer沒有出現以前,人們大多使用pear、pecl管理依賴,可是侷限性不少,也不多有人用(接觸的大多phper基本不適用pear管理依賴)。composer不單單可以解決依賴的問題,也能夠在必定程度上解決造輪子的問題。php

廢話很少說,這篇主要記錄如何建立本身的package。java

大概步驟以下:git

  1. 在github上建立一個項目(項目名稱能夠隨意)
  2. 編寫composer.json
  3. copy代碼文件並修改命名空間
  4. https://packagist.org/上遞交本身的包
  5. 設置github的hook

編寫composer.jsongithub

先看一個示例:json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
     "name" : "jenner/message_queue" ,
     "description" : "php message queue wrapper" ,
     "license" : "MIT" ,
     "keywords" : [ "message queue" ],
     "version" : "1.0.0" ,
     "authors" : [
         {
             "name" : "Jenner" ,
             "email" : "hypxm@qq.com"
         }
     ],
     "require" : {
         "php" : ">=5.3.0"
     },
 
     "autoload" : {
         "psr-0" : {
             "Jenner\\Zebra\\MessageQueue" : "src/"
         }
     }
}

須要注意的幾個字段說明以下:app

name:包名稱,遞交時packagist會檢測報名字是否合法。必須是一個/分隔的字符串。當別人引入你的包時,vendor下會自動建立這個目錄。例如org/package包,則會在vender下建立org/package目錄。composer

autoload:包的加載方式,具體加載方式能夠參考composer中文網說明。這裏使用的是psr-0標準加載方式。composer會在src目錄下根據命名空間執行自動加載。工具

 

copy代碼修改命名空間ui

composer.json文件修改後,咱們須要把要打包的源文件複製過來。這裏我把全部的文件放在了src目錄下,後面可能會有和src同級的tests等目錄,而這些目錄是不會被加載的。src目錄下需遵循psr-0標準。命名空間和目錄定義要一直。例如Namespcae/SubNamespace命名空間,則src下必須有Namespace/SubNamespace目錄。spa

代碼編寫標準能夠參考psr-0、psr-1標準

 

遞交本身的包

pacagist開放遞交,你能夠任意遞交本身的包,固然,要符合必定規則。

packagist右上角有一個submit package的按鈕,點擊會跳轉到遞交頁面,以下圖:

QQ截圖20141104224005

而後在文本框中輸入你在github上建立的項目的Git地址。packagist會自動檢測是否合法。若是合法點擊遞交便可遞交本身的包了。

你可能須要在github上面發佈幾個release,這樣packagist纔會認定你的包是穩定的,不然只能required開發包。

設置github的hook

版本控制工具大多支持hook,用於代碼遞交時觸發一個事件,將代碼同步到其餘環境中。在github上設置hook後,咱們每次pull,都會自動同步到packagist上,這樣就不須要咱們手動強制同步了。具體操做能夠參見packgist的說明,操做很簡單,耐心看下應該問題不大。

 

最後,若是別人使用了這個包。他的vendor目錄下就會產生jenner/message_queue目錄,其下的內容就是你github上的代碼了,結構是徹底一致的。

相關文章
相關標籤/搜索