Composer基礎使用 SDK包初始化

Composer 的工作原理

我們在使用 Composer 之前我們得了解一下它的實現原理,它主要由三個部分組成:命令行工具、包倉庫、代碼庫

Packagist

它是官方倉庫,也就是我們平常說的 Composer 源,它的作用是存儲這些包的信息,版本,代碼來源,依賴,作者,主頁等信息。官網是 packagist.org/, 你也可以將自己的包發布在上面,這樣 Composer 工具就能搜索與安裝你的包了,后面我們會具體介紹發布流程。

Repository

代碼倉庫,Packagist 支持公開與私有倉庫,通常是 GitHub 作為代碼倉庫,當然也可以是 BitBucket 或者 GitLab。

Vendor directory

我們的 Composer 依賴包都統一安裝在項目的 vendor 目錄下,其中還有 vendor/composer 目錄用于存儲依賴包的一些基本信息,比如命名空間等。

Composer創建SDK

初始化Composer

確保在項目目錄中初始化Composer。如果你還沒有Composer,請先安裝它。

 

composer init

當你運行composer init命令時,會開始一個交互式過程,系統將詢問你有關項目的一些信息。以下是可能會被詢問的問題以及應該如何回答:

  1. Package name (vendor-name/package-name) [默認為當前目錄名]:

  1. 這是你的SDK包的名稱。默認情況下,Composer會使用當前目錄名,但你可以根據需要更改。

  1. Description [默認為None]:

描述你的SDK的簡短說明。

  1. Author [默認為None]:

輸入你的名字和郵箱。

  1. Minimum Stability [默認為stable]:

你可以選擇包的最低穩定性。大多數情況下,保持默認即可。

  1. Package Type [默認為library]:

通常是library,如果你的項目是一個應用程序,則可能選擇project

  1. License [默認為MIT]:

選擇你打算使用的許可證類型。

  1. Would you like to define your dependencies (require) interactively? [yes]:

是否要交互式地定義依賴項。選擇“yes”會引導你添加依賴項。

  1. Search for a package:

在這里,你可以搜索并選擇你想要添加的依賴項。例如,你可以搜索"guzzlehttp/guzzle"以添加 Guzzle HTTP 客戶端。

  1. Would you like to define your dev dependencies (require-dev) interactively? [yes]:

是否要交互式地定義開發環境下的依賴項。選擇“yes”會讓你添加開發環境下的依賴項,例如測試框架或代碼檢查工具。

  1. Search for a package (for dev):

類似于第 8 步,在這里你可以搜索并添加開發環境下的依賴項。

完成這些步驟后,Composer 將根據你提供的信息生成一個composer.json文件,其中包含了你項目的基本信息、依賴項等。這個文件會被用來管理你的項目所需的各種依賴項以及包的配置信息。

定義依賴項

composer.json文件中,定義你的SDK的依賴項。這可能包括SDK的名稱、版本號和其他信息。

{"name": "your-vendor-name/your-sdk-name","description": "Description of your SDK","require": {"php": "^7.3",// 你的依賴項},"autoload": {"psr-4": {"YourNamespace\\": "src/"}}
}
 

確保將YourNamespace替換為你想要的命名空間。

SDK目錄結果

 
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── composer.json
├── composer.lock
├── docs
│?? ├── README.md
├── phpunit.xml
├── scripts
│?? └── php_lint.sh
├── src
│?? └── Support
│??     └── helpers.php
└── tests├── AbstractTestCase.php├── Feature├── Unit│?? └── ExampleTest.php└── bootstrap.php

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

參數引入和全局變量引入實現-目標和

LCR 102. 目標和 - 力扣(LeetCode) 分析題意,畫出決策樹,其他的思路都跟前面講過的類似: 全局變量引入實現: 全局變量的引入,需要手動處理回溯; class Solution {int ret; //…

從0到1全流程使用 segment-anything

從0到1全流程使用 segment-anything 一、安裝 anaconda 一、下載 anaconda 二、以管理員身份運行安裝 1、勾選 Just Me 2、統一安裝路徑(后續 python 等包也安裝至此目錄) 3、勾選 add to path 然后安裝即可。 三、修改 Anaconda 默認路徑及默認緩存路徑 Anaconda 默認下…

K8S集群誤刪master節點,master節點恢復完美解決

問題描述: 在單節點的master節點k8s集群中不小心誤刪了master節點導致集群不可用。 多節點應的恢復方式同樣也適用。 解決方案: 兩條命令解決master節點恢復,而不是去重裝k8s集群。 執行下面命令,生成節點的join命令 kubeadm t…

藍橋杯 9241.飛機降落

這道題本來作者以為是可以用一些小技巧進行暴力解法的&#xff0c;但是后來試了一下&#xff0c;不能過去全部數據。 下面是對半個的題解&#xff1a; #include<iostream> #include<stdio.h> #include<cstring> #include<cstdlib> #include<cmath…

掌握 Python: 每個開發人員都應該知道的6個秘密技巧

無論你是一名經驗豐富的開發者還是剛踏入編程世界的新手&#xff0c;Python 很可能已經引起了你的興趣。 它功能強大、靈活多變&#xff0c;而且非常用戶友好&#xff01;但是&#xff0c;讓我們更進一步吧! 在這篇博客中&#xff0c;我將揭示一些隱藏的 Python 技巧&#xff0…

#QT(DEMO)

1.IDE&#xff1a;QTCreator 2.實驗&#xff1a;打印"hello wolrd" 3.記錄 &#xff08;1&#xff09;創建一個新工程&#xff1a; 新建好一個工程存放文件夾&#xff08;路徑不能有中文&#xff09;,然后按下圖配置 &#xff08;2&#xff09;點擊widgets.ui拖入以…

AIGC時代,程序員副業的必修課【提供免費指導,手把手實踐】

給自己的新課做個宣傳&#xff0c;限時6折&#xff0c;感興趣的可以聽一聽&#xff0c;完全干貨。提供課程購買訂單&#xff0c;可免費獲得21天從0到1全程上站指導。 《AIGC時代&#xff0c;程序員副業的必修課》 AIGC時代的到來&#xff0c;又是一個程序員的副業賺錢的好機會…

真香定律!我用這種模式重構了第三方登錄

分享是最有效的學習方式。 博客&#xff1a;https://blog.ktdaddy.com/ 老貓的設計模式專欄已經偷偷發車了。不甘愿做crud boy&#xff1f;看了好幾遍的設計模式還記不住&#xff1f;那就不要刻意記了&#xff0c;跟上老貓的步伐&#xff0c;在一個個有趣的職場故事中領悟設計模…

improve-echarts餅圖自適應(分辨率放大縮小)

1.echarts 本身存在放大縮小圖表不變的情況&#xff0c;要求要圖表適應分辨率&#xff0c;根據分辨率放大縮小來進行適應與響應式。 餅圖 <!-- 餅狀 --><div class"leftrcyle"><div class"ciclye"><div id"cicly" class&q…

2023人機交互期末復習

考試題型及分值分布 1、選擇題&#xff08;10題、20分&#xff09; 2、填空題&#xff08;10題、20分&#xff09; 3、判斷題&#xff08;可選、5題、10分&#xff09; 4、解答題&#xff08;5~6題、30分&#xff09; 5、分析計算題&#xff08;1~2題、20分&#xff09; 注意&…

PHP+MySQL實現后臺管理系統增刪改查之夠用就好

說明 最近要給博客弄個后臺&#xff0c;不想搞得很復雜&#xff0c;有基本的增刪改查就夠了&#xff0c;到網上找了一圈發現這個不錯&#xff0c;很實用&#xff0c;希望可以幫到大家&#xff0c;需要的朋友評論區留下郵箱&#xff0c;我安排發送。 演示效果 項目介紹 本項目…

Jetty使用入門

Jetty使用入門 社區當前推薦開發者使用Jetty 12.X版本。 依據End of Community Support for Jetty 9.x - June 2022&#xff0c;社區對Jetty 9.x的支持&#xff0c;已在2022年6月1日停止。 依據End of Community Support for Jetty 10 / Jetty 11 - January 2024&#xff0c;…

帶使能控制的鋰電池充放電解決方案

一、產品概述 TP4594R 是一款集成線性充電管理、同步升壓轉換、電池電量指示和多種保護功能的單芯片電源管理 SOC&#xff0c;為鋰電池的充放電提供完整的單芯片電源解決方案。 TP4594R 內部集成了線性充電管理模塊、同步升壓放電管理模塊、電量檢測與 LED 指示模塊、保護模塊…

關于python函數參數傳遞

參數傳遞 在 python 中&#xff0c;類型屬于對象&#xff0c;對象有不同類型的區分&#xff0c;變量是沒有類型的&#xff1a; 在下面的代碼示例重&#xff0c;[1,2,3] 是 List 類型&#xff0c;“qayrup” 是 String 類型&#xff0c;而變量 a 是沒有類型&#xff0c;它僅僅…

#WEB前端

1.實驗&#xff1a;vscode安裝&#xff0c;及HTML常用文本標簽 2.IDE&#xff1a;VSCODE 3.記錄&#xff1a; &#xff08;1&#xff09;網頁直接搜索安裝vscode &#xff08;2&#xff09;打開vscode&#xff0c;在下圖分別安裝以下插件&#xff1a; Html Css Support …

C++11線程同步之互斥鎖

C11線程同步之互斥鎖 std::mutex成員函數線程同步 std::lock_guardstd::recursive_mutexstd::timed_mutex 進行多線程編程&#xff0c;如果多個線程需要對同一塊內存進行操作&#xff0c;比如&#xff1a;同時讀、同時寫、同時讀寫對于后兩種情況來說&#xff0c;如果不做任何的…

《互聯網的世界》第四講-擁塞控制與編碼

需要澄清的一個誤區是&#xff0c;擁塞絕不是發送的數據量太大導致&#xff0c;而是數據在極短的時間段內到達了同一個地方以至于超過了網絡處理容量導致&#xff0c;擁塞的成因一定要考慮時間因素。換句話說&#xff0c;擁塞由大突發導致。 只要 pacing&#xff0c;再多的數據…

2024.3.4訓練記錄(8)

文章目錄 CF 459D Pashmak and Parmidas problemCF 1388C Uncle Bogdan and Country HappinessCF 1525D ArmchairsCF 220B Little Elephant and Array CF 459D Pashmak and Parmida’s problem 題目鏈接 最近感覺對數據結構題的反應度提升了&#xff0c;這一題是上午看的但是…

動態規劃(算法競賽、藍橋杯)--樹形DP樹形背包

1、B站視頻鏈接&#xff1a;E18 樹形DP 樹形背包_嗶哩嗶哩_bilibili #include <bits/stdc.h> using namespace std; const int N110; int n,V,p,root; int v[N],w[N]; int h[N],to[N],ne[N],tot; //鄰接表 int f[N][N];void add(int a,int b){to[tot]b;ne[tot]h[a];h[a…

數倉項目6.0(一)

尚硅谷大數據項目【電商數倉6.0】企業數據倉庫項目_bilibili 數據流轉過程 用戶??業務服務器??數據庫存儲??數倉統計分析??數據可視化 數據倉庫處理流程&#xff1a;數據源??加工數據??統計篩選數據??分析數據 數據庫不是為了數據倉庫服務的&#xff0c;需要…