下面由composer教程欄目帶大家介紹怎么使用composer創建php組件,希望對需要的朋友有所幫助!
使用composer創建PHP組件
前言
當今php生態環境,composer已經成為必不可少的組件,相信大多數人已經使用過別人的composer包, 那么如何創建一個PHP組件,發布到packigist從而把你的創意貢獻給開源社區呢?
-
確定廠商名和包名
在開發PHP組件之前,首先要選擇組件的廠商名和包名,已用來區分組件屬于誰,建議廠商名和包名都是用小寫字母.
立即學習“PHP免費學習筆記(深入)”;
-
確定命名空間
命名空間不必和包名一直,注意不要與其他組件命名空間重復.
-
生成composer.json文件
我們可以簡單使用composer init 創建項目的composer.json 文件,
?之后會以問答的形式提示你填寫信息, 以下 “>” 后 表示交互時輸入的信息> composer init Welcome to the Composer config generator This command will guide you through creating your composer.json config. Package name (<vendor>/<name>) [composertest/example]: # 廠商名與包名 > suntianxiang/cn-oauth Description []: > A library for wechat,alipay,weibo OAuth2 Client # 詳細信息 Author [stx <334965556@qq.com>, n to skip]: Minimum Stability []: > beta # 下載時傾向開發版還是穩定版 Package Type (e.g. library, project, metapackage, composer-plugin) []: > library # 包的類型,我們屬于library,固填library License []: MIT # 開源協議 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文件 ()
-
實現組件功能
現在我們要實現組件的具體功能了。這一步我們要便攜組成PHP組件的類、接口和形狀。編寫什么類以及編寫多少類完全取決于PHP組件的作用。
組件的文件組織方式如下:Root: src/ 這個目錄包含組件的源碼 (例如PHP文件) tests/ 單元測試文件 composer.json composer配置文件 README.md 組件介紹,說明,使用方法等, markdown格式 ...
如果你還不太清楚,可以參考一些優秀的組件倉庫的組織結構
-
版本控制
在把組件發布到packagist之前,我們還需要把組件發布到公開的代碼倉庫中,
例如 github, 把寫好的代碼發布到了github上 并創建一個release
-
提交到packagist
現在可以把組件提交到packagist了。
登錄packagist后, 單機網頁右上角的 “Submit Package”按鈕,然后在 “Repository URL” 中輸入完整的Git倉庫URL,再單機“Check”按鈕。組件創建完成
-
我們可以在Github上創建一個鉤子,每次更新組件的倉庫時通知Packgist,在倉庫中設置鉤子的方法參閱https://packagist.org/about#how-to-update-packages
-
使用這個組件
一切都完工了!現在任何人都能使用Comopser安裝這個組件了。
composer require suntianxiang/cn-oauth