創建你的第一個Composer/Packagist包


今天我們要介紹一下如何通過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/

今天我們要介紹一下如何通過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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM