php Composer使用以及Packagist

介紹一下如何通過(guò)Composer和Packagist向PHP社區(qū)貢獻(xiàn)代碼包。首先,如果你是一個(gè)PHP開(kāi)發(fā)者但是還不知道什么是Composer,請(qǐng)先參考了一下這篇文章http://docs.phpcomposer.com/00-intro.html,因?yàn)樵L問(wèn)海外鏡像源的速度較慢,也許你還需要這些方法https://pkg.phpcomposer.com/ 來(lái)獲取更多基礎(chǔ)信息。

創(chuàng)建項(xiàng)目

新建一個(gè)文件作為我們的項(xiàng)目目錄,你可以把所有的文件都放在根目錄下,但是我特別推薦新建另一個(gè)文件夾 “src” 以更容易理解和維護(hù)你的代碼結(jié)構(gòu)。項(xiàng)目結(jié)構(gòu)如下:

project                項(xiàng)目根目錄
└──src                 源代碼放在這個(gè)目錄
   └──Hello.php        新建一個(gè)php文件,取名 Hello.php 
  • Hello.php 文件內(nèi)容如下:
<?php 
 
namespace hello; 
 
class Hello
{
    public static function world()
    {
        return 'Hello World!';
    }
}

使用Composer

Composer是PHP的一個(gè)包依賴(lài)管理工具。你可以使用第三方庫(kù)也可以自行開(kāi)發(fā)。
現(xiàn)在我要告訴你如何創(chuàng)建一個(gè)Composer包并且發(fā)送到Packagist,
Composer通常以“vendor/package” (廠商/包名)的方式來(lái)命名

現(xiàn)在要在項(xiàng)目的根目錄里創(chuàng)建一個(gè) composer.json 的文件,我們可以手動(dòng)創(chuàng)建,也可以在根目錄里通過(guò)composer init命令來(lái)根據(jù)提示創(chuàng)建,根目錄下就生成了composer.json文件,目錄結(jié)構(gòu)如下:

project                項(xiàng)目根目錄
└──src                
   └──Hello.php  
└──composer.json  
  • 添加自動(dòng)加載

然后我們可以手動(dòng)編輯生成的composer.json文件,添加php的版本要求和自動(dòng)加載(使用PSR-4),使用hello命名空間,加載src目錄下的所有文件,composer.json文件內(nèi)容如下:

{
    "name": "wumiss/hello",
    "description": "echo hello world",
    "license": "MIT License",
    "authors": [
        {
            "name": "wumiss",
            "email": "wumiss@wumiss.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "hello\\": "src/"
        }
    }
}
  • 執(zhí)行安裝
    在根目錄打開(kāi)命令行輸入 composer install 最后或多生成composer.lock 和vendor文件夾

在根目錄下創(chuàng)建一個(gè)測(cè)試文件取名 test.php,代碼如下:

<?php  
require_once __DIR__ . '/vendor/autoload.php';  
use hello\Hello;  
echo SayHello::world();
  • 在項(xiàng)目根目錄下執(zhí)行命令 php test.php

如果終端打印出“Hello World!”那祝賀你測(cè)試通過(guò)!


發(fā)布Packagist

上面我們?cè)诒镜赝瓿闪司帉?xiě)和測(cè)試。那么想讓更多人使用我們的包就需要把我們新建的包發(fā)送到Packagist.org。首先我們可以先將項(xiàng)目發(fā)布到Github。我們先去Github 創(chuàng)建一個(gè)公有倉(cāng)庫(kù)命名“hello”, 我們?cè)陧?xiàng)目根目錄使用Git命令來(lái)完成發(fā)布。

我們先在根目錄里創(chuàng)建.gitignore文件,把vendor目錄和composer.lock文件排除git在外。然后推送至github倉(cāng)庫(kù)

vendor/*
composer.lock
  • 提交到Packagist
  1. 首先要在Packagist上注冊(cè)賬號(hào)并登錄
  2. 點(diǎn)擊頂部導(dǎo)航條中的Summit按鈕
  3. 在輸入框中輸入github上的倉(cāng)庫(kù)地址,如:https://github.com/chenjiesuper/ansible-php
  4. 然后點(diǎn)擊Check按鈕(Packagist會(huì)去檢測(cè)此倉(cāng)庫(kù)地址的代碼是否符合Composer的Package包的要求)
  5. 檢測(cè)正常的話(huà),會(huì)出現(xiàn)Submit按鈕,再點(diǎn)擊一下Submit按鈕,我們的包就提交到Packagist上了
  6. 以后更新代碼可以先從Packagist獲取token然后去github 配置下對(duì)應(yīng)的GitHub Service Hook實(shí)現(xiàn)代碼提交后Packagist自動(dòng)拉取更新

如何使用

我們就可以在其他項(xiàng)目引用這個(gè)包了,方法如下:
在新建的項(xiàng)目根目錄執(zhí)行命令 composer require wumiss/hello

或者在新建項(xiàng)目根目錄新建composer.json編輯:

{
    "require": {
        "wumiss/hello":"dev-master" //這里的版本根據(jù)實(shí)際需要修改
    }
}

然后執(zhí)行 composer install 即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一種或者多種,那么,你也能很快知道compo...
    旱魃一樣閱讀 3,365評(píng)論 0 9
  • Composer是一個(gè)非常流行的PHP包依賴(lài)管理工具,已經(jīng)取代PEAR包管理器,對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)掌握Compo...
    虞大膽的嘰嘰喳喳閱讀 4,167評(píng)論 1 33
  • Composer是一個(gè)非常流行的PHP包依賴(lài)管理工具,已經(jīng)取代PEAR包管理器,對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)掌握Compo...
    dreamer_lk閱讀 2,478評(píng)論 0 15
  • Composer是一個(gè)非常流行的PHP包依賴(lài)管理工具,已經(jīng)取代PEAR包管理器,對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)掌握Compo...
    bycall閱讀 2,438評(píng)論 0 1
  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息,讓PHP新手誤入歧途,傳播著錯(cuò)誤的實(shí)踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,856評(píng)論 7 118

友情鏈接更多精彩內(nèi)容