摘要:編寫什么類以及編寫多少類完全取決于組件的作用。組件創(chuàng)建完成我們可以在上創(chuàng)建一個鉤子,每次更新組件的倉庫時通知在倉庫中設(shè)置鉤子的方法參閱使用這個組件一切都完工了現(xiàn)在任何人都能使用安裝這個組件了。
前言
當(dāng)今php生態(tài)環(huán)境,composer已經(jīng)成為必不可少的組件,相信大多數(shù)人已經(jīng)使用過別人的composer包, 那么如何創(chuàng)建一個PHP組件,發(fā)布到packigist從而把你的創(chuàng)意貢獻(xiàn)給開源社區(qū)呢?
確定廠商名和包名
在開發(fā)PHP組件之前,首先要選擇組件的廠商名和包名,已用來區(qū)分組件屬于誰,建議廠商名和包名都是用小寫字母.
確定命名空間
命名空間不必和包名一直,注意不要與其他組件命名空間重復(fù).
生成composer.json文件
我們可以簡單使用composer init 創(chuàng)建項目的composer.json 文件,
之后會以問答的形式提示你填寫信息, 以下 ">" 后 表示交互時輸入的信息
> composer init Welcome to the Composer config generator This command will guide you through creating your composer.json config. Package name (/ ) [composertest/example]: # 廠商名與包名 > suntianxiang/cn-oauth Description []: > A library for wechat,alipay,weibo OAuth2 Client # 詳細(xì)信息 Author [stx <334965556@qq.com>, n to skip]: Minimum Stability []: > beta # 下載時傾向開發(fā)版還是穩(wěn)定版 Package Type (e.g. library, project, metapackage, composer-plugin) []: > library # 包的類型,我們屬于library,固填library License []: MIT # 開源協(xié)議 Would you like to define your dependencies (require) interactively [yes]? > no # 是否需要定義你的依賴 Would you like to define your dev dependencies (require-dev) interactively [yes]? > no { "name": "suntianxiang/cn-oauth", "description": "A library for wechat,alipay,weibo OAuth2 Client", "type": "library", "require-dev": { "phpunit/phpunit": "^6.5" }, "license": "MIT", "authors": [ { "name": "stx", "email": "334965556@qq.com" } ], "minimum-stability": "beta", "require": { "php": "> 7.0", "guzzlehttp/guzzle": "^6.3" }, "autoload": { "psr-4": { "CnOAuth": "src" } } }
最后會輸出生成的composer.json文件 ()
實現(xiàn)組件功能
現(xiàn)在我們要實現(xiàn)組件的具體功能了。這一步我們要便攜組成PHP組件的類、接口和形狀。編寫什么類以及編寫多少類完全取決于PHP組件的作用。
組件的文件組織方式如下:
Root: src/ 這個目錄包含組件的源碼 (例如PHP文件) tests/ 單元測試文件 composer.json composer配置文件 README.md 組件介紹,說明,使用方法等, markdown格式 ...
如果你還不太清楚,可以參考一些優(yōu)秀的組件倉庫的組織結(jié)構(gòu)
版本控制
在把組件發(fā)布到packagist之前,我們還需要把組件發(fā)布到公開的代碼倉庫中,
例如 github, 把寫好的代碼發(fā)布到了github上 并創(chuàng)建一個release
提交到packagist
現(xiàn)在可以把組件提交到packagist了。
登錄packagist后, 單機(jī)網(wǎng)頁右上角的 “Submit Package”按鈕,然后在 “Repository URL” 中輸入完整的Git倉庫URL,再單機(jī)“Check”按鈕。組件創(chuàng)建完成
我們可以在Github上創(chuàng)建一個鉤子,每次更新組件的倉庫時通知Packgist,在倉庫中設(shè)置鉤子的方法參閱https://packagist.org/about#how-to-update-packages
使用這個組件
一切都完工了!現(xiàn)在任何人都能使用Comopser安裝這個組件了。
composer require suntianxiang/cn-oauth
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26248.html
摘要:如果需要下載新版組件,需要使用自動加載組件我們只需在文件的頂部使用函數(shù)導(dǎo)入創(chuàng)建的自動加載器創(chuàng)建的自動加載器就是名為的文件。如果實例化虛構(gòu)的類,會自動加載文件。 組件 PHP組件目錄Packagist https://packagist.org 使用組件 Packagist是查找PHP組件的地方,Composer是安裝PHP組件的工具 https://getcomposer.org 安裝...
摘要:所以呢,為了節(jié)省我們的時間,官方提供了一個鏡像包,里面包含了運行環(huán)境所需要的各項組件我們只需要下載鏡像并新建一個容器,這個容器就提供了框架所需的所有依賴和環(huán)境,將宿主機(jī)上的項目掛載到鏡像的工作目錄下,就可以繼續(xù)我們的開發(fā)或生產(chǎn)工作了。 Swoft 首個基于 Swoole 原生協(xié)程的新時代 PHP 高性能協(xié)程全棧框架,內(nèi)置協(xié)程網(wǎng)絡(luò)服務(wù)器及常用的協(xié)程客戶端,常駐內(nèi)存,不依賴傳統(tǒng)的 PHP-...
摘要:所以呢,為了節(jié)省我們的時間,官方提供了一個鏡像包,里面包含了運行環(huán)境所需要的各項組件我們只需要下載鏡像并新建一個容器,這個容器就提供了框架所需的所有依賴和環(huán)境,將宿主機(jī)上的項目掛載到鏡像的工作目錄下,就可以繼續(xù)我們的開發(fā)或生產(chǎn)工作了。 Swoft 首個基于 Swoole 原生協(xié)程的新時代 PHP 高性能協(xié)程全棧框架,內(nèi)置協(xié)程網(wǎng)絡(luò)服務(wù)器及常用的協(xié)程客戶端,常駐內(nèi)存,不依賴傳統(tǒng)的 PHP-...
摘要:首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網(wǎng)站購買視頻,網(wǎng)站地址放在文末我的博客作用自動安裝所需要的模塊,自動加載管理項目,發(fā)布到網(wǎng)上上去是默認(rèn)的加載組件地址安裝下 首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇composer的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網(wǎng)站購買視頻...
摘要:是組件的依賴管理器,它在命令行中使用。廠商名和包名只是為了讓識別組件,而命名空間則是需要在代碼中使用組件。至此,我們的組件就發(fā)布成功了。總結(jié)以上就是關(guān)于安裝使用以及發(fā)布的介紹。 原文是在我自己博客中,小伙伴也可以點閱讀原文進(jìn)行跳轉(zhuǎn)查看,還有好聽的背景音樂噢~ showImg(https://www.cxiansheng.cn/usr/uploads/2017/11/905996380....
閱讀 1244·2023-04-25 18:57
閱讀 2127·2023-04-25 16:28
閱讀 3926·2021-11-24 09:39
閱讀 3631·2021-11-16 11:45
閱讀 1816·2021-10-13 09:40
閱讀 1260·2019-08-30 15:52
閱讀 1715·2019-08-30 10:57
閱讀 657·2019-08-29 16:55