這篇文章主要介紹“Debian11中怎么安裝使用Composer”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Debian11中怎么安裝使用Composer”文章能幫助大家解決問題。
10年積累的網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有龍井免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Composer是一個(gè)流行的PHP依賴性管理工具,主要是為了方便項(xiàng)目依賴性的安裝和更新。Composer的工作原理是檢查一個(gè)特定項(xiàng)目所依賴的其他軟件包,然后根據(jù)項(xiàng)目要求使用適當(dāng)?shù)陌姹緸槟惆惭b它們。Composer也常用于引導(dǎo)基于流行的PHP框架的新項(xiàng)目,如Symfony和Laravel。
要學(xué)習(xí)本教程,你需要設(shè)置一臺 Debian 11 服務(wù)器,包括一個(gè)非根用戶sudo
并啟用防火墻。你可以按照我們的Debian 11 初始服務(wù)器設(shè)置指南來做。
除了可能已經(jīng)包含在您的 Debian 11 系統(tǒng)中的依賴項(xiàng)之外,Composer 需要php-cli
來在命令行中執(zhí)行 PHP 腳本,以及unzip
來提取壓縮文件。
首先要更新軟件包管理器的緩存。
sudo apt update
接下來,安裝依賴項(xiàng)。你將需要curl
來下載Composer,需要php-cli
來安裝和運(yùn)行它。php-mbstring
包是必要的,它為你在本教程中要使用的一個(gè)庫提供功能。git
被Composer用來下載項(xiàng)目依賴,而unzip
是用來提取壓縮包的。所有東西都可以用下面的命令來安裝。
sudo apt install curl php-cli php-mbstring git unzip
安裝好所有的依賴項(xiàng)后,現(xiàn)在你可以安裝Composer了。
Composer提供了一個(gè)用PHP編寫的安裝程序。你將下載它,確認(rèn)它沒有損壞,然后用它來安裝Composer。
首先,確保你在你的主目錄中。
cd ~
然后,使用curl
檢索安裝程序。
curl -sS https://getcomposer.org/installer -o composer-setup.php
接下來,驗(yàn)證安裝程序是否與Composer公鑰/簽名頁面上的最新安裝程序的SHA-384哈希值一致。為了方便驗(yàn)證步驟,你可以使用下面的命令,以編程方式從composer頁面獲取最新的哈希值,并將其存儲在一個(gè)shell變量中。
HASH=`curl -sS https://composer.github.io/installer.sig`
要輸出獲得的值,請運(yùn)行。
echo $HASH
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae
現(xiàn)在執(zhí)行以下PHP代碼,如Composer下載頁面中提供的,以驗(yàn)證安裝腳本是否可以安全運(yùn)行。
php -r "if
(hash_file('SHA384', 'composer-setup.php') === '$HASH') {
echo 'Installer verified';
}
else { echo 'Installer corrupt'; unlink('composer-setup.php');
}
echo PHP_EOL;"
你的輸出將是以下內(nèi)容。
OutputInstaller verified
如果你收到的信息是Installer corrupt
,你需要再次下載安裝腳本并驗(yàn)證你使用的是正確的哈希值。然后運(yùn)行命令,再次驗(yàn)證安裝程序。一旦你有一個(gè)經(jīng)過驗(yàn)證的安裝程序,你就可以繼續(xù)了。
要在全局范圍內(nèi)安裝composer
,使用下面的命令下載并安裝Composer作為全系統(tǒng)的命令,命名為composer
在/usr/local/bin
。
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
你的輸出將是以下內(nèi)容。
OutputAll settings correct for using Composer
Downloading...
Composer (version 2.3.10) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
通過運(yùn)行這個(gè)命令測試你的安裝。
composer
然后你的輸出將顯示Composer的版本和參數(shù),類似于下面的內(nèi)容。
Output ______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.3.10 2022-07-13 15:48:23Usage:
command [options] [arguments]
Options:
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
--no-scripts Skips the execution of all scripts defined in composer.json file.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug. . .
這就驗(yàn)證了Composer已經(jīng)成功地安裝在你的系統(tǒng)上,并且在整個(gè)系統(tǒng)中是可用的。
**注意:**如果你喜歡為你在這臺服務(wù)器上托管的每個(gè)項(xiàng)目都有單獨(dú)的Composer可執(zhí)行文件,你可以以每個(gè)項(xiàng)目為基礎(chǔ)在本地安裝它。NPM的用戶將熟悉這種方法。當(dāng)你的系統(tǒng)用戶沒有權(quán)限在全系統(tǒng)安裝軟件時(shí),這種方法也很有用。
要做到這一點(diǎn),請使用命令php composer-setup.php
。這將在你的當(dāng)前目錄下生成一個(gè)composer.phar
文件,可以用 ./composer.phar command
.
現(xiàn)在你已經(jīng)安裝了Composer,在下一步你將學(xué)習(xí)如何使用Composer來管理PHP的依賴性。
PHP項(xiàng)目經(jīng)常依賴外部庫,而管理這些依賴關(guān)系和它們的版本可能很棘手。Composer通過跟蹤你的依賴關(guān)系并使其他人更容易安裝它們來解決這個(gè)問題。
為了在你的項(xiàng)目中使用Composer,你需要一個(gè)composer.json
文件。composer.json
文件告訴Composer它需要為你的項(xiàng)目下載的依賴項(xiàng),以及允許安裝的每個(gè)包的版本。這對于保持你的項(xiàng)目的一致性和避免安裝不穩(wěn)定的版本而可能導(dǎo)致向后兼容性問題是非常重要的。
你不需要手動(dòng)創(chuàng)建這個(gè)文件,因?yàn)檫@樣做很容易出錯(cuò),可能會導(dǎo)致語法錯(cuò)誤。當(dāng)你使用composer require
命令向你的項(xiàng)目添加一個(gè)依賴關(guān)系時(shí),Composer會自動(dòng)生成composer.json
文件。你可以用同樣的方法添加額外的依賴關(guān)系,而不需要手動(dòng)編輯這個(gè)文件。
使用Composer在項(xiàng)目中安裝一個(gè)包作為依賴的過程包括以下步驟。
確定應(yīng)用程序需要什么樣的庫。
在Packagist.org(Composer的官方軟件包庫)上研究一個(gè)合適的開源庫。
選擇你想依賴的軟件包。
運(yùn)行composer require
,在composer.json
文件中包含該依賴性,并安裝該軟件包。
你可以用一個(gè)演示應(yīng)用程序來測試一下。
這個(gè)應(yīng)用程序的目標(biāo)是將一個(gè)給定的句子轉(zhuǎn)換成一個(gè)叫做slug的URL友好字符串。slug通常用于將頁面標(biāo)題轉(zhuǎn)換為URL路徑,例如本教程中URL的最后部分。
首先導(dǎo)航到你的主目錄。
cd ~
然后創(chuàng)建一個(gè)目錄。將其稱為slugify
。
mkdir slugify
創(chuàng)建完畢后,換到該目錄中。
cd slugify
現(xiàn)在是時(shí)候在Packagist.org上搜索一個(gè)可以幫助生成蛞蝓的軟件包。
列表中每個(gè)軟件包的右側(cè)會有兩個(gè)數(shù)字。箭頭朝下的圖標(biāo)旁邊的數(shù)字代表該軟件包被安裝了多少次,而帶星形圖標(biāo)的數(shù)字代表軟件包在GitHub上被加了多少次星。你還可以根據(jù)這些數(shù)字對搜索結(jié)果重新排序。一般來說,安裝次數(shù)多、星級多的軟件包往往更穩(wěn)定,因?yàn)橛泻芏嗳嗽谑褂盟鼈儭z查軟件包的描述是否相關(guān)也很重要,以確保它是你所需要的。
對于這個(gè)教程,你需要一個(gè)字符串到蛞蝓的轉(zhuǎn)換器。從搜索結(jié)果來看,軟件包cocur/slugify
是一個(gè)很好的匹配,有合理數(shù)量的安裝和星級。
Packagist上的軟件包有一個(gè)供應(yīng)商名稱和一個(gè)軟件包名稱。每個(gè)包都有一個(gè)唯一的標(biāo)識符(命名空間),其格式與GitHub用于其存儲庫的格式相同,即 vendor/package
.你要安裝的庫使用命名空間cocur/slugify
。你需要這個(gè)命名空間,以便在你的項(xiàng)目中需要該包。
現(xiàn)在你知道了你要安裝的軟件包,運(yùn)行composer require
,把它作為一個(gè)依賴項(xiàng)包括進(jìn)去,同時(shí)為項(xiàng)目生成composer.json
文件。
composer require cocur/slugify
當(dāng)Composer下載依賴關(guān)系時(shí),你的輸出將返回如下。
OutputUsing version ^4.1 for cocur/slugify
./composer.json has been created
Running composer update cocur/slugify
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking cocur/slugify (v4.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading cocur/slugify (v4.1.0)
- Installing cocur/slugify (v4.1.0): Extracting archive
Generating autoload files
正如這個(gè)輸出所表明的,Composer會自動(dòng)決定使用哪個(gè)版本的軟件包。如果你現(xiàn)在檢查你的項(xiàng)目目錄,它將包含兩個(gè)新文件:composer.json
和composer.lock
,以及一個(gè)vendor
目錄。
ls -l
Outputtotal 12-rw-r--r-- 1 sammy sammy 59 Aug 2 22:19 composer.json-rw-r--r-- 1 sammy sammy 3462 Aug 2 22:19 composer.lockdrwxr-xr-x 4 sammy sammy 4096 Aug 2 22:19 vendor
composer.lock
文件是用來存儲每個(gè)已安裝軟件包的版本信息的。它也確保在別人克隆你的項(xiàng)目并安裝其依賴項(xiàng)時(shí)使用相同的版本。vendor
目錄是項(xiàng)目依賴項(xiàng)所在的地方。vendor
文件夾不需要提交到版本控制中,你只需要包括composer.json
和composer.lock
文件。
當(dāng)安裝一個(gè)已經(jīng)包含composer.json
文件的項(xiàng)目時(shí),運(yùn)行composer install
,以便下載項(xiàng)目的依賴項(xiàng)。
接下來,查看版本約束。如果你檢查你的composer.json
文件的內(nèi)容,你會有類似下面的內(nèi)容。
cat composer.json
Output{
"require": {
"cocur/slugify": "^4.1"
}}
你可能會注意到在composer.json
的版本號之前有一個(gè)特殊的字符^
。Composer支持幾種不同的約束和格式來定義所需的軟件包版本,以提供靈活性,同時(shí)也保持你的項(xiàng)目穩(wěn)定。自動(dòng)生成的composer.json
文件所使用的圓點(diǎn)(^
)運(yùn)算符是推薦的運(yùn)算符,以實(shí)現(xiàn)最大的互操作性,遵循語義版本學(xué)。在這種情況下,它將4.1定義為最小兼容版本,并允許更新到5.0以下的任何未來版本。
一般來說,你不需要在你的composer.json
文件中篡改版本約束。然而,有些情況可能需要你手動(dòng)編輯約束。例如,當(dāng)你所需要的庫的一個(gè)主要新版本發(fā)布時(shí),你想要升級,或者當(dāng)你想要使用的庫不遵循語義版本劃分時(shí)。
下面是一些例子,讓你更好地了解Composer版本約束的工作方式。
約束 | 意義 | 允許的版本示例 |
---|---|---|
^1.0 | >= 1.0 < 2.0 | 1.0, 1.2.3, 1.9.9 |
^1.1.0 | >= 1.1.0 < 2.0 | 1.1.0, 1.5.6, 1.9.9 |
~1.0 | >= 1.0 < 2.0.0 | 1.0, 1.4.1, 1.9.9 |
~1.0.0 | >= 1.0.0 < 1.1 | 1.0.0, 1.0.4, 1.0.9 |
1.2.1 | 1.2.1 | 1.2.1 |
1.* | >= 1.0 < 2.0 | 1.0.0, 1.4.5, 1.9.9 |
1.2.* | >= 1.2 < 1.3 | 1.2.0, 1.2.3, 1.2.9 |
由于PHP本身不會自動(dòng)加載類,Composer提供了一個(gè)自動(dòng)加載腳本,你可以把它包含在你的項(xiàng)目中,讓自動(dòng)加載發(fā)揮作用。這在處理你的依賴關(guān)系時(shí)很有幫助。
你唯一需要做的是在任何類實(shí)例化之前在你的PHP腳本中包含vendor/autoload.php
文件。這個(gè)文件在你添加第一個(gè)依賴項(xiàng)時(shí)由Composer自動(dòng)生成。
你可以在你的應(yīng)用程序中測試它。創(chuàng)建該文件test.php
,并在你喜歡的文本編輯器中打開它。這里使用的是nano
。
nano test.php
添加以下代碼,引入vendor/autoload.php
文件,加載cocur/slugify
依賴關(guān)系,并創(chuàng)建一個(gè)slug。
test.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Cocur\Slugify\Slugify;$slugify = new Slugify();echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');
保存該文件并退出你的編輯器。如果你使用的是nano
,你可以按CTRL + X
,然后按Y
和ENTER
來完成。
現(xiàn)在運(yùn)行該腳本。
php test.php
這將產(chǎn)生以下輸出。
Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
當(dāng)新版本出來時(shí),依賴關(guān)系需要更新,所以你將在最后一步中學(xué)習(xí)如何處理這個(gè)問題。
每當(dāng)你想把你的項(xiàng)目依賴關(guān)系更新到最新的版本時(shí),運(yùn)行update
命令。
composer update
這將檢查你在項(xiàng)目中作為需求添加的庫的較新版本。如果發(fā)現(xiàn)一個(gè)新的版本,并且它與composer.json
文件中定義的版本約束兼容,Composer將替換之前安裝的版本。composer.lock
文件將被更新以反映這些變化。
你也可以像下面這樣指定一個(gè)或多個(gè)特定的庫來更新它們。
composer update vendor/package vendor2/package2
請確保在你更新你的依賴關(guān)系后提交你的composer.json
和composer.lock
文件的變化,這樣無論誰在項(xiàng)目中工作,都可以訪問相同的軟件包版本。
關(guān)于“Debian11中怎么安裝使用Composer”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。
網(wǎng)站題目:Debian11中怎么安裝使用Composer
網(wǎng)頁地址:http://m.rwnh.cn/article44/iggghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、Google、微信小程序、品牌網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)