開發一個自己的composer包
阿新 • • 發佈:2019-12-31
轉載請註明文章出處:shiwenyuan.github.io/post/ck0dlg…
composer簡介
Composer 是 PHP 的一個依賴管理工具。它允許你申明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。
複製程式碼
準備工作
1.一個github賬號 2.一個packagist賬號 3.一臺安裝composer的開發機
packagist註冊連結 | github註冊連結 | composer檔案 |
釋出流程
1.首先在github上建立一個專案
2.把專案克隆到本地
3.進入專案根目錄初始化專案
➜ xdpframework git:(master) composer init
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [shiwenyuan/xdpframework]:
Description []: a xdp framework
Author [北行10000 <[email protected]>,n to skip]:
Minimum Stability []: dev
Package Type (e.g. library,project,metapackage,composer-plugin) []:
License []: MIT
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:
{
"name": "shiwenyuan/xdpframework","description": "a xdp framework","license": "MIT","authors": [
{
"name": "北行10000","email": "[email protected]"
}
],"minimum-stability" : "dev","require": {}
}
Do you confirm generation [yes]?
Would you like the vendor directory added to your .gitignore [yes]? yes
複製程式碼
此時目錄下回程車一個composer.json檔案,檔案內容形如
{
"name": "shiwenyuan/xdpframework","require": {}
}
複製程式碼
4.編寫自己的composer包
4.1 此處我建立了一個src目錄並實現了SayHello類
➜ xdpframework git:(master) ✗ tree
.
├── README.md
├── composer.json
└── src
└── SayHello.php
複製程式碼
4.2 修改composer.json
{
"name": "shiwenyuan/xdpframework","require": {},"autoload": {
"psr-4": {
"XdpFrameWork\\": "src/"
}
}
}
複製程式碼
4.3 自動載入src目錄
在4.2添加了src的載入執行composer install實現自動載入
➜ xdpframework git:(master) ✗ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
此時目錄中會生成一個vendor 它實現了載入方法
➜ xdpframework git:(master) ✗ tree
.
├── README.md
├── composer.json
├── src
│ └── SayHello.php
└── vendor
├── autoload.php
└── composer
├── ClassLoader.php
├── LICENSE
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
└── installed.json
複製程式碼
4.4 測試結果
建立test.php
<?php
/**
* Created by PhpStorm.
* User: shiwenyuan
* Date: 2018/8/2 [email protected]
* Time: 下午8:56
*/
require_once __DIR__."/vendor/autoload.php";
use XdpFrameWork\SayHello;
SayHello::world();
命令列中執行
➜ xdpframework git:(master) ✗ php test.php
hello world
複製程式碼
4.5 忽略vendor、composer.json檔案
修改.gitignore增加下面兩行
/vendor/
複製程式碼
4.6提交程式碼到 github
5. Packagist配置
5.1 github關聯到Packagist
1.首先要在Packagist上登入
2.點選頂部導航條中的Summit按鈕
3.在輸入框中輸入github上的倉庫地址,如:https://github.com/shiwenyuan/xdpfarmwork
4.然後點選Check按鈕
5.Packagist會去檢測此倉庫地址的程式碼是否符合Composer的Package包的要求
6.檢測正常的話,會出現Submit按鈕,再點選一下Submit按鈕,我們的包就提交到Packagist上了
複製程式碼
5.2 配置自動同步
1.從Packagist點選個人中心點選profile獲取token然後複製
2.到github專案首頁上點選settings、點選webhooks、點選addwebhook
3.把https://packagist.org/api/bitbucket?username=USERNAME&apiToken=TOKEN 複製到Payload URL,在下方輸入密碼後儲存
複製程式碼
5.3 打tag測試
引用包
composer require shiwenyuan/xdpframework
複製程式碼
注意事項
如果下載不下來到話就換一下映象
composer config -g repo.packagist composer https://packagist.laravel-china.org
剛釋出上去可能會下載不到,沒有同步過來-- 可以等一會在試試看
複製程式碼