一、關於composer
Composer 是
PHP5.3
以上 的一個依賴管理工具
。它允許你聲明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。有了它我們就可以輕鬆的使用一個命令
將其他優秀程式碼引用到我們的專案中來。
二、依賴套件管理工具
java有maven
,前端有npm
,安卓有Gradle
,作為世界上最好的語言
也就有了composer
三、composer的優勢
- 你有一個專案依賴若干個函式庫。
- 其中一些函式庫依賴其他函式庫。
- 你宣告你所依賴的東西。
- Composer 會找出哪個版本的套件需要安裝,並安裝它們(將它們下載到你的專案中)。
四、composer常用指令
-
#composer require
:安裝一個軟體包 -
composer update
:會偵測新版本套件所需的環境和依賴自動實作工具包的升級 -
composer install
:如果沒有composer.json文件,會安裝composer.json中的依賴 -
composer init
:會初始化一個composer.json設定檔#五、composer的安裝
參考菜鳥教學
在網站下方新建一個目錄,名稱為
##六、手寫一個composer套件
blog
- 。
- 1、目錄下執行:
- composer init
#執行完後,讓我們輸入一個套件名,我就叫
guangtouqiang/blog把。
套件名稱
name
2、執行對於需要發布的套件(庫),這是必須填寫的。
套件的名稱,它包括供應商名稱和項目名稱,使用 / 分隔。
- 例如,phpmailer/phpmailer
guangtouqiang/blog:
#接下來讓輸入描述。
描述description
一個套件的簡短描述。通常這個最長只有一行。
3、輸入描述
this is guangtouqiang test bag
- 4、
輸入作者名稱(可選)
#作者
authors這個物件必須包含以下的所有屬性。
name: 作者的姓名,通常使用真名。 email: 作者的 email 位址。
homepage: 作者首頁的 URL 位址。#########5、輸入最低穩定版本#########可用的穩定性標識:###dev、alpha、beta、RC、stable。 ###,一般選擇###dev###。 #########6、輸入套件類型############套件類型###type######
role: 該作者在此專案中擔任的角色(例:開發人員 或 翻譯)。
- 包的安装类型,默认为
library。
- library: 这是默认类型,它会简单的将文件复制到 vendor 目录。
- project: 这表示当前包是一个项目,而不是一个库。例:框架应用程序 Symfony standard edition,内容管理系统 SilverStripe installer 或者完全成熟的分布式应用程序。使用 IDE 创建一个新的工作区时,这可以为其提供项目列表的初始化。
- metapackage: 当一个空的包,包含依赖并且需要触发依赖的安装,这将不会对系统写入额外的文件。因此这种安装类型并不需要一个 dist 或 source。
- composer-plugin: 一个安装类型为 composer-plugin 的包,它有一个自定义安装类型,可以为其它包提供一个 installler。详细请查看 自定义安装类型。
默认为 library
我们选择1,library
即可!
7、需要输入开源协议
选择输入GPL,LGPL,BSD,MIT,Apache
这些开源协议即可:
8、是否依赖于其它包,是否依赖于其它环境,这边都yes即可。
Search for a package
:选择搜索php。
9、生成成功。
此时,目录下已经有个composer
这些配置:
七、composer目录的修改
看下刚刚生成的composer.json
:
{ "name": "guangtouqiang/blog", "description": "this is guangtouqiang test bag", "type": "1", "require": { "php": "^7.0" }, "license": "Apache-2.0", "authors": [ { "name": "guangtouqiang", "email": "xiaozhengguo521@gmail.com" } ], "minimum-stability": "dev"}
再次基础上增加:
{ "name": "guangtouqiang/blog", "description": "this is guangtouqiang test bag", "type": "1", "require": { "php": "^7.0" }, "license": "Apache-2.0", "authors": [ { "name": "guangtouqiang", "email": "xiaozhengguo521@gmail.com" } ], "minimum-stability": "dev", "autoload": { "psr-4": { "guangtouqiang\\": "src/guangtouqiang" } }}
命令行执行:composer dump-autoload
,更新composer的命名空间与文件夹映射关系。
同样,需要新建一个src
和guangtouqiang
的文件夹:
在根目录新建个index.php
测试一波:
输出:
注意命名空间的层级与文件夹层级是否相同,类名与文件名相同才能自动加载。
八、将写好的composer包上传
1、在github上新建个仓库
2、将本地的composer包上传到新仓库
git init
git add .
git commit -m "xxx"
git remote add origin 你的远程仓库地址
git push -u origin master
3、登录https://packagist.org/packages/submit
4、将你github上的仓库地址复制进去:
5、配置webhook:
6、复制上图地址到github。
新增webhook
:
這時候,github倉庫與packagist已經建立了關聯。但還需要進行發布正式版本才能使用。
7、打版本標籤
git tag -a v1.0.1 -m "第一版"
git push origin v1.0.1
此時,已經標籤成功了,從packagist能看到我們所有的版本。
執行composer require xx/xxx
就能供別人使用啦。
九、總結
關於composer.json詳細描述請參考:composer.json詳細使用
更多composer相關技術文章,請造訪composer教學欄位!
以上是怎麼手寫composer包並上傳發布的詳細內容。更多資訊請關注PHP中文網其他相關文章!

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹餾標д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

在開發一個基於Symfony的應用程序時,我遇到了一個棘手的問題:如何有效地驗證JSON數據格式。最初,我嘗試使用手動編寫的驗證代碼,但這不僅複雜,而且容易出錯。經過一番探索,我發現了一個名為ptyhard/json-schema-bundle的Composer包,它為我的項目帶來了極大的便利和效率。

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

在開發電商平台時,選擇合適的框架和工具至關重要。最近我在嘗試構建一個功能豐富的電商網站時,遇到了一個棘手的問題:如何快速搭建一個可擴展且功能完善的電商平台。我嘗試了多種解決方案,最終選擇了Fecmall的高級項目模板(fecmall/fbbcbase-app-advanced)。通過使用Composer,這個過程變得非常簡單和高效。可以通過以下地址學習Composer:學習地址

在处理一个包含大量Doctrine实体的项目时,我遇到了一个棘手的问题:每次序列化和反序列化实体时,性能变得非常低效,导致系统响应时间显著增加。我尝试了多种优化方法,但效果不佳。幸运的是,通过使用sidus/doctrine-serializer-bundle,我成功地解决了这个问题,显著提升了项目的性能。

在開發Laravel項目時,錯誤日誌的管理是一個非常關鍵的環節。最近,我在項目中遇到了一個問題:如何高效地捕獲和記錄所有類型的錯誤,並確保這些錯誤信息能被及時處理。經過一番研究,我找到了lukeboy25/errorlogger這個包,它通過Composer安裝,能夠極大地簡化錯誤日誌的管理過程。可以通過一下地址學習composer:學習地址

在開發一個Laravel應用時,我遇到了一個常見但棘手的問題:如何提升用戶賬戶的安全性。隨著網絡攻擊的日益複雜,單一的密碼保護已經不足以保障用戶的數據安全。我嘗試了幾種方法,但效果都不盡如人意。最終,我通過Composer安裝了wiebenieuwenhuis/laravel-2fa庫,成功地為我的應用添加了雙因素認證(2FA),大大提升了安全性。

在開發一個網站時,我遇到了一個常見卻棘手的問題:如何準確判斷用戶的訪問設備類型,以及如何快速獲取文件的下載大小。這些功能看似簡單,但實現起來卻需要處理大量的細節和兼容性問題。經過一番探索,我發現了weizhang/utilities這個Composer包,它提供了簡潔而有效的解決方案。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)