這篇文章主要介紹“Debian11中怎么安裝使用Composer”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“Debian11中怎么安裝使用Composer”文章能幫助大家解決問題。
10年積累的網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有龍井免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Composer是一個流行的PHP依賴性管理工具,主要是為了方便項目依賴性的安裝和更新。Composer的工作原理是檢查一個特定項目所依賴的其他軟件包,然后根據(jù)項目要求使用適當(dāng)?shù)陌姹緸槟惆惭b它們。Composer也常用于引導(dǎo)基于流行的PHP框架的新項目,如Symfony和Laravel。
要學(xué)習(xí)本教程,你需要設(shè)置一臺 Debian 11 服務(wù)器,包括一個非根用戶sudo
并啟用防火墻。你可以按照我們的Debian 11 初始服務(wù)器設(shè)置指南來做。
除了可能已經(jīng)包含在您的 Debian 11 系統(tǒng)中的依賴項之外,Composer 需要php-cli
來在命令行中執(zhí)行 PHP 腳本,以及unzip
來提取壓縮文件。
首先要更新軟件包管理器的緩存。
sudo apt update
接下來,安裝依賴項。你將需要curl
來下載Composer,需要php-cli
來安裝和運行它。php-mbstring
包是必要的,它為你在本教程中要使用的一個庫提供功能。git
被Composer用來下載項目依賴,而unzip
是用來提取壓縮包的。所有東西都可以用下面的命令來安裝。
sudo apt install curl php-cli php-mbstring git unzip
安裝好所有的依賴項后,現(xiàn)在你可以安裝Composer了。
Composer提供了一個用PHP編寫的安裝程序。你將下載它,確認(rèn)它沒有損壞,然后用它來安裝Composer。
首先,確保你在你的主目錄中。
cd ~
然后,使用curl
檢索安裝程序。
curl -sS https://getcomposer.org/installer -o composer-setup.php
接下來,驗證安裝程序是否與Composer公鑰/簽名頁面上的最新安裝程序的SHA-384哈希值一致。為了方便驗證步驟,你可以使用下面的命令,以編程方式從composer頁面獲取最新的哈希值,并將其存儲在一個shell變量中。
HASH=`curl -sS https://composer.github.io/installer.sig`
要輸出獲得的值,請運行。
echo $HASH
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae
現(xiàn)在執(zhí)行以下PHP代碼,如Composer下載頁面中提供的,以驗證安裝腳本是否可以安全運行。
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
,你需要再次下載安裝腳本并驗證你使用的是正確的哈希值。然后運行命令,再次驗證安裝程序。一旦你有一個經(jīng)過驗證的安裝程序,你就可以繼續(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
通過運行這個命令測試你的安裝。
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. . .
這就驗證了Composer已經(jīng)成功地安裝在你的系統(tǒng)上,并且在整個系統(tǒng)中是可用的。
**注意:**如果你喜歡為你在這臺服務(wù)器上托管的每個項目都有單獨的Composer可執(zhí)行文件,你可以以每個項目為基礎(chǔ)在本地安裝它。NPM的用戶將熟悉這種方法。當(dāng)你的系統(tǒng)用戶沒有權(quán)限在全系統(tǒng)安裝軟件時,這種方法也很有用。
要做到這一點,請使用命令php composer-setup.php
。這將在你的當(dāng)前目錄下生成一個composer.phar
文件,可以用 ./composer.phar command
.
現(xiàn)在你已經(jīng)安裝了Composer,在下一步你將學(xué)習(xí)如何使用Composer來管理PHP的依賴性。
PHP項目經(jīng)常依賴外部庫,而管理這些依賴關(guān)系和它們的版本可能很棘手。Composer通過跟蹤你的依賴關(guān)系并使其他人更容易安裝它們來解決這個問題。
為了在你的項目中使用Composer,你需要一個composer.json
文件。composer.json
文件告訴Composer它需要為你的項目下載的依賴項,以及允許安裝的每個包的版本。這對于保持你的項目的一致性和避免安裝不穩(wěn)定的版本而可能導(dǎo)致向后兼容性問題是非常重要的。
你不需要手動創(chuàng)建這個文件,因為這樣做很容易出錯,可能會導(dǎo)致語法錯誤。當(dāng)你使用composer require
命令向你的項目添加一個依賴關(guān)系時,Composer會自動生成composer.json
文件。你可以用同樣的方法添加額外的依賴關(guān)系,而不需要手動編輯這個文件。
使用Composer在項目中安裝一個包作為依賴的過程包括以下步驟。
確定應(yīng)用程序需要什么樣的庫。
在Packagist.org(Composer的官方軟件包庫)上研究一個合適的開源庫。
選擇你想依賴的軟件包。
運行composer require
,在composer.json
文件中包含該依賴性,并安裝該軟件包。
你可以用一個演示應(yīng)用程序來測試一下。
這個應(yīng)用程序的目標(biāo)是將一個給定的句子轉(zhuǎn)換成一個叫做slug的URL友好字符串。slug通常用于將頁面標(biāo)題轉(zhuǎn)換為URL路徑,例如本教程中URL的最后部分。
首先導(dǎo)航到你的主目錄。
cd ~
然后創(chuàng)建一個目錄。將其稱為slugify
。
mkdir slugify
創(chuàng)建完畢后,換到該目錄中。
cd slugify
現(xiàn)在是時候在Packagist.org上搜索一個可以幫助生成蛞蝓的軟件包。
列表中每個軟件包的右側(cè)會有兩個數(shù)字。箭頭朝下的圖標(biāo)旁邊的數(shù)字代表該軟件包被安裝了多少次,而帶星形圖標(biāo)的數(shù)字代表軟件包在GitHub上被加了多少次星。你還可以根據(jù)這些數(shù)字對搜索結(jié)果重新排序。一般來說,安裝次數(shù)多、星級多的軟件包往往更穩(wěn)定,因為有很多人在使用它們。檢查軟件包的描述是否相關(guān)也很重要,以確保它是你所需要的。
對于這個教程,你需要一個字符串到蛞蝓的轉(zhuǎn)換器。從搜索結(jié)果來看,軟件包cocur/slugify
是一個很好的匹配,有合理數(shù)量的安裝和星級。
Packagist上的軟件包有一個供應(yīng)商名稱和一個軟件包名稱。每個包都有一個唯一的標(biāo)識符(命名空間),其格式與GitHub用于其存儲庫的格式相同,即 vendor/package
.你要安裝的庫使用命名空間cocur/slugify
。你需要這個命名空間,以便在你的項目中需要該包。
現(xiàn)在你知道了你要安裝的軟件包,運行composer require
,把它作為一個依賴項包括進(jìn)去,同時為項目生成composer.json
文件。
composer require cocur/slugify
當(dāng)Composer下載依賴關(guān)系時,你的輸出將返回如下。
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
正如這個輸出所表明的,Composer會自動決定使用哪個版本的軟件包。如果你現(xiàn)在檢查你的項目目錄,它將包含兩個新文件:composer.json
和composer.lock
,以及一個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
文件是用來存儲每個已安裝軟件包的版本信息的。它也確保在別人克隆你的項目并安裝其依賴項時使用相同的版本。vendor
目錄是項目依賴項所在的地方。vendor
文件夾不需要提交到版本控制中,你只需要包括composer.json
和composer.lock
文件。
當(dāng)安裝一個已經(jīng)包含composer.json
文件的項目時,運行composer install
,以便下載項目的依賴項。
接下來,查看版本約束。如果你檢查你的composer.json
文件的內(nèi)容,你會有類似下面的內(nèi)容。
cat composer.json
Output{
"require": {
"cocur/slugify": "^4.1"
}}
你可能會注意到在composer.json
的版本號之前有一個特殊的字符^
。Composer支持幾種不同的約束和格式來定義所需的軟件包版本,以提供靈活性,同時也保持你的項目穩(wěn)定。自動生成的composer.json
文件所使用的圓點(^
)運算符是推薦的運算符,以實現(xiàn)最大的互操作性,遵循語義版本學(xué)。在這種情況下,它將4.1定義為最小兼容版本,并允許更新到5.0以下的任何未來版本。
一般來說,你不需要在你的composer.json
文件中篡改版本約束。然而,有些情況可能需要你手動編輯約束。例如,當(dāng)你所需要的庫的一個主要新版本發(fā)布時,你想要升級,或者當(dāng)你想要使用的庫不遵循語義版本劃分時。
下面是一些例子,讓你更好地了解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本身不會自動加載類,Composer提供了一個自動加載腳本,你可以把它包含在你的項目中,讓自動加載發(fā)揮作用。這在處理你的依賴關(guān)系時很有幫助。
你唯一需要做的是在任何類實例化之前在你的PHP腳本中包含vendor/autoload.php
文件。這個文件在你添加第一個依賴項時由Composer自動生成。
你可以在你的應(yīng)用程序中測試它。創(chuàng)建該文件test.php
,并在你喜歡的文本編輯器中打開它。這里使用的是nano
。
nano test.php
添加以下代碼,引入vendor/autoload.php
文件,加載cocur/slugify
依賴關(guān)系,并創(chuàng)建一個slug。
test.php
slugify('Hello World, this is a long sentence and I need to make a slug from it!');
保存該文件并退出你的編輯器。如果你使用的是nano
,你可以按CTRL + X
,然后按Y
和ENTER
來完成。
現(xiàn)在運行該腳本。
php test.php
這將產(chǎn)生以下輸出。
Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
當(dāng)新版本出來時,依賴關(guān)系需要更新,所以你將在最后一步中學(xué)習(xí)如何處理這個問題。
每當(dāng)你想把你的項目依賴關(guān)系更新到最新的版本時,運行update
命令。
composer update
這將檢查你在項目中作為需求添加的庫的較新版本。如果發(fā)現(xiàn)一個新的版本,并且它與composer.json
文件中定義的版本約束兼容,Composer將替換之前安裝的版本。composer.lock
文件將被更新以反映這些變化。
你也可以像下面這樣指定一個或多個特定的庫來更新它們。
composer update vendor/package vendor2/package2
請確保在你更新你的依賴關(guān)系后提交你的composer.json
和composer.lock
文件的變化,這樣無論誰在項目中工作,都可以訪問相同的軟件包版本。
關(guān)于“Debian11中怎么安裝使用Composer”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。