本文由composer教學專欄為大家介紹關於在Debian11上是怎麼一步步安裝,以及使用Composer的,非常詳細哦~希望對需要的朋友有所幫助!
Composer是一個流行的PHP依賴性管理工具,主要是為了方便專案依賴的安裝和更新。 Composer的工作原理是檢查一個特定專案所依賴的其他軟體包,然後根據專案要求使用適當的版本為你安裝它們。 Composer也常用於引導基於流行的PHP框架的新項目,如Symfony和Laravel。
在本指南中,你將在 Debian 11 伺服器上安裝並使用 Composer。
要學習本教程,你需要設定一台 Debian 11 伺服器,包括一個非根用戶sudo
並啟用防火牆。你可以按照我們的Debian 11 初始伺服器設定指南來做。
除了可能已經包含在您的Debian 11 系統中的依賴項之外,Composer 需要php-cli
來在指令行中執行PHP 腳本,以及unzip
來提取壓縮檔。
首先要更新軟體套件管理器的快取。
sudo apt update
接下來,安裝依賴項。你將需要curl
來下載Composer,需要php-cli
來安裝和執行它。 php-mbstring
套件是必要的,它為你在本教學中要使用的一個函式庫提供功能。 git
被Composer用來下載專案依賴,而unzip
是用來提取壓縮包的。所有東西都可以用下面的指令來安裝。
sudo apt install curl php-cli php-mbstring git unzip
安裝好所有的依賴項後,現在你可以安裝Composer了。
Composer提供了一個用PHP寫的安裝程式。你將下載它,確認它沒有損壞,然後用它來安裝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复制代码
現在執行以下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;"
你的輸出將是以下內容。
OutputInstaller verified
如果你收到的訊息是Installer corrupt
,你需要再次下載安裝腳本並驗證你使用的是正確的雜湊值。然後運行命令,再次驗證安裝程式。一旦你有一個經過驗證的安裝程序,你就可以繼續了。
要在全域範圍內安裝composer
,使用下面的命令下載並安裝Composer作為全系統的命令,命名為composer
在/usr/ local/bin
。
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
你的輸出將是以下內容。
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的版本和參數,類似下面的內容。
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已經成功地安裝在你的系統上,並且在整個系統中是可用的。
**注意:**如果你喜歡為你在這台伺服器上託管的每個專案都有單獨的Composer可執行文件,你可以以每個專案為基礎在本地安裝它。 NPM的使用者將熟悉這種方法。當你的系統使用者沒有權限在全系統安裝軟體時,這種方法也很有用。
要做到這一點,請使用指令php composer-setup.php
。這將在你的當前目錄下產生一個composer.phar
文件,可以用./composer.phar command
.
現在你已經安裝了Composer,在下一步你將學習如何使用Composer來管理PHP的依賴。
PHP專案經常依賴外部程式庫,而管理這些依賴關係和它們的版本可能很棘手。 Composer透過追蹤你的依賴關係並使其他人更容易安裝它們來解決這個問題。
為了在你的專案中使用Composer,你需要一個composer.json
檔案。 composer.json
檔案告訴Composer它需要為你的專案下載的依賴項,以及允許安裝的每個套件的版本。這對於保持你的專案的一致性和避免安裝不穩定的版本而可能導致向後相容性問題是非常重要的。
你不需要手動建立這個文件,因為這樣做很容易出錯,可能會導致語法錯誤。當你使用composer require
指令為你的專案新增一個依賴關係時,Composer會自動產生composer.json
檔案。你可以用同樣的方法加入額外的依賴關係,而不需要手動編輯這個檔案。
使用Composer在项目中安装一个包作为依赖的过程包括以下步骤。
composer require
,在composer.json
文件中包含该依赖性,并安装该软件包。你可以用一个演示应用程序来测试一下。
这个应用程序的目标是将一个给定的句子转换成一个叫做slug的URL友好字符串。slug通常用于将页面标题转换为URL路径,例如本教程中URL的最后部分。
首先导航到你的主目录。
cd ~
然后创建一个目录。将其称为slugify
。
mkdir slugify
创建完毕后,换到该目录中。
cd slugify
现在是时候在Packagist.org上搜索一个可以帮助生成蛞蝓的软件包。如果你在Packagist上搜索 "slug "这个词,你会得到一个与下面类似的结果。
列表中每个软件包的右侧会有两个数字。箭头朝下的图标旁边的数字代表该软件包被安装了多少次,而带星形图标的数字代表软件包在GitHub上被加了多少次星。你还可以根据这些数字对搜索结果重新排序。一般来说,安装次数多、星级多的软件包往往更稳定,因为有很多人在使用它们。检查软件包的描述是否相关也很重要,以确保它是你所需要的。
对于这个教程,你需要一个字符串到蛞蝓的转换器。从搜索结果来看,软件包cocur/slugify
是一个很好的匹配,有合理数量的安装和星级。
Packagist上的软件包有一个供应商名称和一个软件包名称。每个包都有一个唯一的标识符(命名空间),其格式与GitHub用于其存储库的格式相同,即 vendor/package
.你要安装的库使用命名空间cocur/slugify
。你需要这个命名空间,以便在你的项目中需要该包。
现在你知道了你要安装的软件包,运行composer require
,把它作为一个依赖项包括进去,同时为项目生成composer.json
文件。
composer require cocur/slugify
当Composer下载依赖关系时,你的输出将返回如下。
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会自动决定使用哪个版本的软件包。如果你现在检查你的项目目录,它将包含两个新文件: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
文件。
当安装一个已经包含composer.json
文件的项目时,运行composer install
,以便下载项目的依赖项。
接下来,查看版本约束。如果你检查你的composer.json
文件的内容,你会有类似下面的内容。
cat composer.json
Output{ "require": { "cocur/slugify": "^4.1" }}
你可能会注意到在composer.json
的版本号之前有一个特殊的字符^
。Composer支持几种不同的约束和格式来定义所需的软件包版本,以提供灵活性,同时也保持你的项目稳定。自动生成的composer.json
文件所使用的圆点(^
)运算符是推荐的运算符,以实现最大的互操作性,遵循语义版本学。在这种情况下,它将4.1定义为最小兼容版本,并允许更新到5.0以下的任何未来版本。
一般来说,你不需要在你的composer.json
文件中篡改版本约束。然而,有些情况可能需要你手动编辑约束。例如,当你所需要的库的一个主要新版本发布时,你想要升级,或者当你想要使用的库不遵循语义版本划分时。
下面是一些例子,让你更好地了解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 |
要想更深入地了解Composer的版本约束,请查阅官方文档。
接下来,你将学习如何用Composer自动加载依赖项。
由于PHP本身不会自动加载类,Composer提供了一个自动加载脚本,你可以把它包含在你的项目中,让自动加载发挥作用。这在处理你的依赖关系时很有帮助。
你唯一需要做的是在任何类实例化之前在你的PHP脚本中包含vendor/autoload.php
文件。这个文件在你添加第一个依赖项时由Composer自动生成。
你可以在你的应用程序中测试它。创建该文件test.php
,并在你喜欢的文本编辑器中打开它。这里使用的是nano
。
nano test.php
添加以下代码,引入vendor/autoload.php
文件,加载cocur/slugify
依赖关系,并创建一个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!');<p>保存该文件并退出你的编辑器。如果你使用的是<code>nano</code> ,你可以按<code>CTRL + X</code> ,然后按<code>Y</code> 和<code>ENTER</code> 来完成。</p> <p>现在运行该脚本。</p> <pre class="brush:php;toolbar:false">php test.php
这将产生以下输出。
Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
当新版本出来时,依赖关系需要更新,所以你将在最后一步中学习如何处理这个问题。
每当你想把你的项目依赖关系更新到最新的版本时,运行update
命令。
composer update
这将检查你在项目中作为需求添加的库的较新版本。如果发现一个新的版本,并且它与composer.json
文件中定义的版本约束兼容,Composer将替换之前安装的版本。composer.lock
文件将被更新以反映这些变化。
你也可以像下面这样指定一个或多个特定的库来更新它们。
composer update vendor/package vendor2/package2
请确保在你更新你的依赖关系后提交你的composer.json
和composer.lock
文件的变化,这样无论谁在项目中工作,都可以访问相同的软件包版本。
Composer是每个PHP开发者都应该拥有的强大工具。在本教程中,你在 Debian 11 上安装了 Composer 并在一个项目中使用了它。你现在知道如何安装和更新依赖关系了。
除了提供一个可靠的方法来管理项目的依赖关系外,Composer 还建立了一个新的标准来分享和发现由社区创建的 PHP 包。
以上是四大步教你在Debian11上安裝使用Composer!的詳細內容。更多資訊請關注PHP中文網其他相關文章!