建立你的第一個Composer/Packagist包

今天咱們要介紹一下如何經過Composer和Packagist向PHP社區貢獻代碼包。首先,若是你是一個PHP開發者可是還不知道什麼是Composer,請先參考了一下這篇文章http://docs.phpcomposer.com/00-intro.html,由於訪問海外鏡像源的速度較慢,也許你還須要這些方法https://pkg.phpcomposer.com/ 來獲取更多基礎信息。php

使用Composer

Composer是PHP的一個包依賴管理工具。你可使用第三方庫也能夠自行開發。如今我要告訴你如何建立一個Composer包而且發送到Packagist(其餘開發者能夠經過它在他們項目中使用這些發佈到Packagist上的包)。html

建立包

你能夠建立一個新項目來使用Composer。咱們建一個輸出hello world 的類 。這是一個簡單的類可是你也能夠建立複雜的項目來分享給其餘開發者。Composer一般以「vendor/package」 (廠商/包名)的方式來命名。這裏咱們爲項目命名」chenjie/hello」。git

文件結構

你能夠把全部的文件都放在根目錄下,可是我特別推薦新建另外一個文件夾 「src」 以更容易理解和維護你的代碼結構。項目結構以下:github

編輯hello (項目根目錄) /src/SayHello.php 文件:json

 

開始Composer

如今要在項目的根目錄裏建立一個composer.json的文件,咱們能夠手動建立,也能夠在根目錄裏經過composer init命令來根據提示建立:composer

根目錄下就生成了composer.json文件,目錄結構以下:ide

 

添加自動加載

而後咱們能夠手動編輯生成的composer.json文件,添加php的版本要求和自動加載(使用PSR-4),使用Hello命名空間,加載src目錄下的全部文件,以下:工具

 

進行測試

下面咱們來簡單測試下咱們的類是否工做正常。咱們在項目根目錄執行:測試

 

建立測試文件

下面咱們在根目錄下新建一個測試文件test.phpui

在項目根目錄下執行命令  php test.php

若是終端打印出「Hello World!」那祝賀你測試經過!

發佈到Packagist.org

上面咱們在本地完成了編寫和測試。那麼想讓更多人使用咱們的包就須要把咱們新建的包發送到Packagist.org。首先咱們能夠先將項目發佈到Github。咱們先去Github 建立一個公有倉庫命名「hello」, 咱們在項目根目錄使用Git命令來完成發佈。

咱們先在根目錄裏建立.gitignore文件,把vendor目錄和composer.lock文件排除git在外。

推送代碼

固然咱們也能夠帶上tag標籤推送

 

提交到Packagist

  1. 首先要在Packagist上註冊帳號並登陸
  2. 點擊頂部導航條中的Summit按鈕
  3. 在輸入框中輸入github上的倉庫地址,如:https://github.com/chenjiesuper/ansible-php
  4. 而後點擊Check按鈕
    Packagist會去檢測此倉庫地址的代碼是否符合Composer的Package包的要求
  5. 檢測正常的話,會出現Submit按鈕,再點擊一下Submit按鈕,咱們的包就提交到Packagist上了
  6. 之後更新代碼能夠先從Packagist獲取token而後去github 配置下對應的GitHub Service Hook實現代碼提交後Packagist自動拉取更新

使用

咱們就能夠在其餘項目引用chenjie這個包了,方法以下:
在新建的項目根目錄執行命令 composer require chenjie/hello

或者在新建項目根目錄新建composer.json編輯:

而後執行  composer install 便可。

到這裏咱們的第一個Composer/Packagist包就完成了,可是你能夠透過它作更多。謝謝!

參考

http://blog.jgrossi.com/2013/creating-your-first-composer-packagist-package/

http://qianlei.cc/create-your-first-composer-package/

今天咱們要介紹一下如何經過Composer和Packagist向PHP社區貢獻代碼包。首先,若是你是一個PHP開發者可是還不知道什麼是Composer,請先參考了一下這篇文章http://docs.phpcomposer.com/00-intro.html,由於訪問海外鏡像源的速度較慢,也許你還須要這些方法https://pkg.phpcomposer.com/ 來獲取更多基礎信息。

使用Composer

Composer是PHP的一個包依賴管理工具。你可使用第三方庫也能夠自行開發。如今我要告訴你如何建立一個Composer包而且發送到Packagist(其餘開發者能夠經過它在他們項目中使用這些發佈到Packagist上的包)。

建立包

你能夠建立一個新項目來使用Composer。咱們建一個輸出hello world 的類 。這是一個簡單的類可是你也能夠建立複雜的項目來分享給其餘開發者。Composer一般以「vendor/package」 (廠商/包名)的方式來命名。這裏咱們爲項目命名」chenjie/hello」。

文件結構

你能夠把全部的文件都放在根目錄下,可是我特別推薦新建另外一個文件夾 「src」 以更容易理解和維護你的代碼結構。項目結構以下:

編輯hello (項目根目錄) /src/SayHello.php 文件:

 

開始Composer

如今要在項目的根目錄裏建立一個composer.json的文件,咱們能夠手動建立,也能夠在根目錄裏經過composer init命令來根據提示建立:

根目錄下就生成了composer.json文件,目錄結構以下:

 

添加自動加載

而後咱們能夠手動編輯生成的composer.json文件,添加php的版本要求和自動加載(使用PSR-4),使用Hello命名空間,加載src目錄下的全部文件,以下:

 

進行測試

下面咱們來簡單測試下咱們的類是否工做正常。咱們在項目根目錄執行:

 

建立測試文件

下面咱們在根目錄下新建一個測試文件test.php

在項目根目錄下執行命令  php test.php

若是終端打印出「Hello World!」那祝賀你測試經過!

發佈到Packagist.org

上面咱們在本地完成了編寫和測試。那麼想讓更多人使用咱們的包就須要把咱們新建的包發送到Packagist.org。首先咱們能夠先將項目發佈到Github。咱們先去Github 建立一個公有倉庫命名「hello」, 咱們在項目根目錄使用Git命令來完成發佈。

咱們先在根目錄裏建立.gitignore文件,把vendor目錄和composer.lock文件排除git在外。

推送代碼

固然咱們也能夠帶上tag標籤推送

 

提交到Packagist

  1. 首先要在Packagist上註冊帳號並登陸
  2. 點擊頂部導航條中的Summit按鈕
  3. 在輸入框中輸入github上的倉庫地址,如:https://github.com/chenjiesuper/ansible-php
  4. 而後點擊Check按鈕
    Packagist會去檢測此倉庫地址的代碼是否符合Composer的Package包的要求
  5. 檢測正常的話,會出現Submit按鈕,再點擊一下Submit按鈕,咱們的包就提交到Packagist上了
  6. 之後更新代碼能夠先從Packagist獲取token而後去github 配置下對應的GitHub Service Hook實現代碼提交後Packagist自動拉取更新

使用

咱們就能夠在其餘項目引用chenjie這個包了,方法以下:
在新建的項目根目錄執行命令 composer require chenjie/hello

或者在新建項目根目錄新建composer.json編輯:

而後執行  composer install 便可。

到這裏咱們的第一個Composer/Packagist包就完成了,可是你能夠透過它作更多。謝謝!

參考

http://blog.jgrossi.com/2013/creating-your-first-composer-packagist-package/

http://qianlei.cc/create-your-first-composer-package/

相關文章
相關標籤/搜索