1. 程式人生 > >如何創建自己的composer包

如何創建自己的composer包

load curl CI 相關 release 全局 allow pen getc

composer中文網 :https://www.phpcomposer.com/

一.前期準備:

composer 安裝

Windows安裝:

1.下載安裝包,https://getcomposer.org/download/

2.在php.ini文檔中打開extension=php_openssl.dll

3.下載php_ssh2.dll、php_ssh2.pdb,http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

4.把php_ssh2.dll、php_ssh2.pdb文件放php的ext文件夾

5.重啟apache,php

linux 全局安裝
安裝步驟:

1. curl -sS https://getcomposer.org/installer | php

2. mv composer.phar /usr/local/bin/composer

安裝完後 運行composer不報錯 即成功

二. github創建倉庫 (

https://github.com/maole01/test.git

三.提交本地項目到github新建的倉庫, 並(composer init)初始化項目生產composer.json文件

進入項目目錄
1.在命令行中,輸入“git init”,使Test文件夾加入git管理;
2.輸入“git add .”(不要漏了“.”),將Test文件夾全部內容添加到git。
3.輸入“git commit -m "first commit"”(“git commit -m "提交信息"”
4.從github將倉庫內的文件pull下來 (以免push的時候出現沖突報錯)
git pull https://github.com/maole01/test.git master --allow-unrelated-histories
5.輸入 git remote add origin https://github.com/maole01/test.git(git remote add origin 你自己的https地址),連接你的guthub倉庫。
6.輸入“git push -u origin master”,上傳項目到Github。這裏會要求輸入Github的賬號密碼,按要求輸入自己的就可以。

初始化項目

進入項目目錄 然後輸入composer init命令開始為該項目初始化composer
填一些生成composer.json的配置信息
Package name 包的名稱 (前面最好用自己的github賬號名(保證唯一性),後面用倉庫名) : maole01/test
description 包的描述。 : 隨便填
Author 包的作者 : 可以直接回車
Minimum Stability 輸入最低版本類型 : dev (這裏我們選擇開發版)
Package Type 項目類型 : project
License [] 授權類型 隨便填 : MIT
Would you like to define your dependencies (require) interactively [yes]?
是否選擇依賴其他第三方庫 依賴選擇yes 否則選擇 no
選擇yes後根據自己項目所依賴的庫進行搜索 然後進行版本號選擇
Would you like to define your dev dependencies (require-dev) interactively [yes]?
是否需要require-dev 選擇yes 否則選擇 no
Do you confirm generation [yes]? yes
是否生成composer.json 確認compose.json文件沒有問題 選擇yes
如果使用github 這裏還會提問 是否把生成的vendor目錄放到.gitignore文件隱藏 這裏選擇 yes

然後當前目錄下會出現一個composer.json 文件

然後將初始化生成的composer.json文件上傳到github倉庫( https://github.com/maole01/test.git )

四.將 GitHub 上的包提交到 Packagist 註冊

進入https://packagist.org

  1. 首先要在 Packagist 上註冊賬號並登錄(可以用 GitHub 直接登錄)
  2. 點擊頂部導航條中的 Summit 按鈕
  3. 在輸入框中輸入 GitHub 上的剛才包地址,如:https://github.com/guanguans/uploadfile
  4. 然後點擊 Check 按鈕 Packagist 會去檢測此倉庫地址的代碼是否符合 Composer 的 Package 包的要求

檢測正常的話,會出現 Submit 按鈕,再點擊一下 Submit 按鈕,我們的包就提交到 Packagist 上了

五.設置 composer 包自動更新

上面提交上的包提交的包,當我們更新 GitHub 倉庫時,Packagist 上面的的包並不會自動更新,現在我們來設置一下自動更新

1.開啟github裏面的服務鉤子
點擊github倉庫裏面的 setting -> Integrations & services -> Add service 搜索Packagist

2. 填寫相關資料
user: github賬號 如:maole01
token : packagist.org裏面Profile show API Token
domain: 域名 https://packagist.org/
添加->成功後 點擊Edit 點擊頁面右上角Test service 測試 報:Okay, the test payload is on its way. 即成功(當我們往github裏面推代碼時,會自動更新到packagist.org應用商店,不需要手動去更新了)

六.通過建立的package包拉取倉庫代碼

建立聯系之後 即可在其他目錄通過composer create-project拉取github裏的代碼了,如:
composer create-project maole01/test a1 dev-master --prefer-dist

把我test倉庫裏面的代碼拉到本地a1文件夾裏面

這裏有時候因為網絡原因可能會不成功,可以分別試試國內或者國外的鏡像(默認是國外鏡像)

設置成國內:composer config -g repo.packagist composer https://packagist.phpcomposer.com

設置成國外:composer config -g repo.packagist composer https://packagist.org

七.項目引用packagist.org裏面其他package包

可以直接在裏面搜索自己需要的包 (如驗證碼 :apache),選擇適合自己的或者下載量比較高的

然後通過composer require gregwar/captcha引入,(這裏例子是引用的gregwar/captcha 驗證碼包)

1.在自己項目代碼裏面 include "vendor/autoload.php"; 可以實現類的自動加載
2. 也可以修改composer.json 增加 autoload ,如:files表示要自動加載的文件,psr-4 表示要加載(core目錄和web目錄)的命名空間
{
"name": "maole01/test",
"description": "test",
"type": "prohect",
"license": "MIT",
"authors": [
{
"name": "maole",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {},
"autoload" : {
"files" : ["
core/functions.php"
],
"psr-4":{
"core\\" : "core",
"web\\" : "web"
}
}
}
3. composer dump (按照配置文件把環境重新配置一下)

以上內容為本人自己所寫,可能存在錯誤的地方,僅供參考,大家可根據自己的實際需求進行配置。

如何創建自己的composer包