In vier Schritten erfahren Sie, wie Sie Composer unter Debian11 installieren und verwenden!

藏色散人
Freigeben: 2022-11-08 20:41:00
nach vorne
2296 Leute haben es durchsucht

Dieser Artikel wurde von der composertutorial-Kolumne geschrieben, um Sie Schritt für Schritt in die Installation und Verwendung von Composer unter Debian11 einzuführen. Ich hoffe, dass er Freunden, die ihn benötigen, hilfreich sein wird!

Composer ist ein beliebtes PHP-Abhängigkeitsverwaltungstool, das hauptsächlich die Installation und Aktualisierung von Projektabhängigkeiten erleichtert. Composer überprüft, von welchen anderen Paketen ein bestimmtes Projekt abhängt, und installiert sie dann für Sie mit den entsprechenden Versionen basierend auf den Projektanforderungen. Composer wird auch häufig zum Booten neuer Projekte verwendet, die auf beliebten PHP-Frameworks wie Symfony und Laravel basieren.

In dieser Anleitung installieren und verwenden Sie Composer auf einem Debian 11-Server.

Voraussetzungen

Um diesem Tutorial folgen zu können, müssen Sie einen Debian 11-Server einrichten, einen Nicht-Root-Benutzer sudo hinzufügen und die Firewall aktivieren. Sie können dies tun, indem Sie unserer Anleitung zur Ersteinrichtung des Debian 11-Servers folgen. sudo 并启用防火墙。你可以按照我们的Debian 11 初始服务器设置指南来做。

第一步 - 安装依赖项

除了可能已经包含在您的 Debian 11 系统中的依赖项之外,Composer 需要php-cli 来在命令行中执行 PHP 脚本,以及unzip 来提取压缩文件。

首先要更新软件包管理器的缓存。

sudo apt update
Nach dem Login kopieren

接下来,安装依赖项。你将需要curl 来下载Composer,需要php-cli 来安装和运行它。php-mbstring 包是必要的,它为你在本教程中要使用的一个库提供功能。git 被Composer用来下载项目依赖,而unzip 是用来提取压缩包的。所有东西都可以用下面的命令来安装。

sudo apt install curl php-cli php-mbstring git unzip
Nach dem Login kopieren

安装好所有的依赖项后,现在你可以安装Composer了。

第二步 - 下载和安装Composer

Composer提供了一个用PHP编写的安装程序。你将下载它,确认它没有损坏,然后用它来安装Composer。

首先,确保你在你的主目录中。

cd ~
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

然后,使用curl 检索安装程序。

curl -sS https://getcomposer.org/installer -o composer-setup.php
Nach dem Login kopieren

接下来,验证安装程序是否与Composer公钥/签名页面上的最新安装程序的SHA-384哈希值一致。为了方便验证步骤,你可以使用下面的命令,以编程方式从composer页面获取最新的哈希值,并将其存储在一个shell变量中。

HASH=`curl -sS https://composer.github.io/installer.sig`
Nach dem Login kopieren

要输出获得的值,请运行。

echo $HASH
Nach dem Login kopieren
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae复制代码
Nach dem Login kopieren

现在执行以下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;"
Nach dem Login kopieren

你的输出将是以下内容。

OutputInstaller verified
Nach dem Login kopieren

如果你收到的信息是Installer corrupt ,你需要再次下载安装脚本并验证你使用的是正确的哈希值。然后运行命令,再次验证安装程序。一旦你有一个经过验证的安装程序,你就可以继续了。

要在全局范围内安装composer ,使用下面的命令下载并安装Composer作为全系统的命令,命名为composer/usr/local/bin

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Nach dem Login kopieren

你的输出将是以下内容。

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
Nach dem Login kopieren

通过运行这个命令测试你的安装。

composer
Nach dem Login kopieren

然后你的输出将显示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. . .
Nach dem Login kopieren

这就验证了Composer已经成功地安装在你的系统上,并且在整个系统中是可用的。

**注意:**如果你喜欢为你在这台服务器上托管的每个项目都有单独的Composer可执行文件,你可以以每个项目为基础在本地安装它。NPM的用户将熟悉这种方法。当你的系统用户没有权限在全系统安装软件时,这种方法也很有用。

要做到这一点,请使用命令php composer-setup.php 。这将在你的当前目录下生成一个composer.phar 文件,可以用 ./composer.phar command.

现在你已经安装了Composer,在下一步你将学习如何使用Composer来管理PHP的依赖性。

第3步 - 在PHP项目中使用Composer

PHP项目经常依赖外部库,而管理这些依赖关系和它们的版本可能很棘手。Composer通过跟踪你的依赖关系并使其他人更容易安装它们来解决这个问题。

为了在你的项目中使用Composer,你需要一个composer.json 文件。composer.json 文件告诉Composer它需要为你的项目下载的依赖项,以及允许安装的每个包的版本。这对于保持你的项目的一致性和避免安装不稳定的版本而可能导致向后兼容性问题是非常重要的。

你不需要手动创建这个文件,因为这样做很容易出错,可能会导致语法错误。当你使用composer require 命令向你的项目添加一个依赖关系时,Composer会自动生成composer.json

Schritt Eins – Abhängigkeiten installieren 🎜Zusätzlich zu den Abhängigkeiten, die möglicherweise bereits auf Ihrem Debian 11-System enthalten sind, benötigt Composer zur Ausführung php-cli PHP-Skripte über die Befehlszeile und unzip zum Extrahieren komprimierter Dateien. 🎜🎜Aktualisieren Sie zunächst den Cache des Paketmanagers. 🎜
cd ~
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
🎜 Als nächstes installieren Sie die Abhängigkeiten. Sie benötigen curl, um Composer herunterzuladen, und php-cli, um es zu installieren und auszuführen. Das Paket php-mbstring ist erforderlich, um Funktionen für eine Bibliothek bereitzustellen, die Sie in diesem Tutorial verwenden werden. git wird von Composer zum Herunterladen von Projektabhängigkeiten verwendet, während unzip zum Extrahieren komprimierter Pakete verwendet wird. Alles kann mit den folgenden Befehlen installiert werden. 🎜
mkdir slugify
Nach dem Login kopieren
Nach dem Login kopieren
🎜Nachdem Sie alle Abhängigkeiten installiert haben, können Sie jetzt Composer installieren. 🎜

Schritt 2 – Composer herunterladen und installieren🎜🎜Composer bietet ein in PHP geschriebenes Installationsprogramm. Sie laden es herunter, stellen sicher, dass es nicht beschädigt ist, und verwenden es dann zur Installation von Composer. 🎜🎜Stellen Sie zunächst sicher, dass Sie sich in Ihrem Home-Verzeichnis befinden. 🎜
cd slugify
Nach dem Login kopieren
Nach dem Login kopieren
🎜Dann verwenden Sie curl, um das Installationsprogramm abzurufen. 🎜
composer require cocur/slugify
Nach dem Login kopieren
Nach dem Login kopieren
🎜 Überprüfen Sie als Nächstes, ob das Installationsprogramm mit dem SHA-384-Hash des neuesten Installationsprogramms auf der Seite „Öffentlicher Schlüssel/Signatur“ des Composer übereinstimmt. Um den Überprüfungsschritt zu erleichtern, können Sie den folgenden Befehl verwenden, um programmgesteuert den neuesten Hashwert von der Composer-Seite abzurufen und ihn in einer Shell-Variablen zu speichern. 🎜
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
Nach dem Login kopieren
Nach dem Login kopieren
🎜Um die erhaltenen Werte auszugeben, führen Sie Folgendes aus: 🎜
ls -l
Nach dem Login kopieren
Nach dem Login kopieren
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
Nach dem Login kopieren
Nach dem Login kopieren
🎜 Führen Sie nun den folgenden PHP-Code aus, wie auf der Composer-Downloadseite bereitgestellt, um zu überprüfen, ob das Installationsskript sicher ausgeführt werden kann. 🎜
cat composer.json
Nach dem Login kopieren
Nach dem Login kopieren
🎜Ihre Ausgabe wird wie folgt sein. 🎜
Output{
    "require": {
        "cocur/slugify": "^4.1"
    }}
Nach dem Login kopieren
Nach dem Login kopieren
🎜Wenn Sie die Meldung Installer beschädigt erhalten, müssen Sie das Installationsskript erneut herunterladen und überprüfen, ob Sie den richtigen Hash verwenden. Führen Sie dann den Befehl aus, um das Installationsprogramm erneut zu überprüfen. Sobald Sie über ein verifiziertes Installationsprogramm verfügen, können Sie fortfahren. 🎜🎜Um composer global zu installieren, verwenden Sie den folgenden Befehl, um Composer als systemweiten Befehl mit dem Namen composer in /usr/local/bin herunterzuladen und zu installieren. Code>. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">nano test.php</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Ihre Ausgabe wird wie folgt sein. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php require __DIR__ . &amp;#39;/vendor/autoload.php&amp;#39;; use Cocur\Slugify\Slugify;$slugify = new Slugify();echo $slugify-&gt;slugify('Hello World, this is a long sentence and I need to make a slug from it!');</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>🎜 Testen Sie Ihre Installation, indem Sie diesen Befehl ausführen. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">php test.php</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Dann zeigt Ihre Ausgabe die Composer-Version und die Parameter an, ähnlich wie unten. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Dadurch wird bestätigt, dass Composer erfolgreich auf Ihrem System installiert wurde und im gesamten System verfügbar ist. 🎜🎜**HINWEIS:** Wenn Sie für jedes Projekt, das Sie auf diesem Server hosten, lieber eine separate ausführbare Composer-Datei haben möchten, können Sie diese lokal für jedes Projekt installieren. Benutzer von NPM werden mit diesem Ansatz vertraut sein. Diese Methode ist auch nützlich, wenn Ihr Systembenutzer keine Berechtigung zur systemweiten Installation von Software hat. 🎜🎜Verwenden Sie dazu den Befehl <code>php Composer-Setup.php. Dadurch wird eine composer.phar-Datei in Ihrem aktuellen Verzeichnis generiert. Sie können den Befehl ./composer.phar verwenden. 🎜🎜Nachdem Sie Composer installiert haben, folgen Sie dem nächsten Schritt für Schritt erfahren Sie, wie Sie mit Composer PHP-Abhängigkeiten verwalten. 🎜

Schritt 3 – Verwendung von Composer in PHP-Projekten 🎜🎜PHP-Projekte basieren häufig auf externen Bibliotheken, und die Verwaltung dieser Abhängigkeiten und ihrer Versionen kann schwierig sein. Composer löst dieses Problem, indem es Ihre Abhängigkeiten verfolgt und es anderen erleichtert, sie zu installieren. 🎜🎜Um Composer in Ihrem Projekt verwenden zu können, benötigen Sie eine composer.json-Datei. Die Datei composer.json teilt Composer mit, welche Abhängigkeiten es für Ihr Projekt herunterladen muss und welche Versionen jedes Pakets es installieren darf. Dies ist wichtig, um die Konsistenz Ihres Projekts aufrechtzuerhalten und die Installation einer instabilen Version zu vermeiden, die zu Problemen mit der Abwärtskompatibilität führen kann. 🎜🎜Sie müssen diese Datei nicht manuell erstellen, da dies fehleranfällig ist und zu Syntaxfehlern führen kann. Wenn Sie den Befehl composer require verwenden, um Ihrem Projekt eine Abhängigkeit hinzuzufügen, generiert Composer automatisch eine Datei composer.json. Mit der gleichen Methode können Sie weitere Abhängigkeiten hinzufügen, ohne diese Datei manuell bearbeiten zu müssen. 🎜

使用Composer在项目中安装一个包作为依赖的过程包括以下步骤。

  • 确定应用程序需要什么样的库。
  • 在Packagist.org(Composer的官方软件包库)上研究一个合适的开源库。
  • 选择你想依赖的软件包。
  • 运行composer require ,在composer.json 文件中包含该依赖性,并安装该软件包。

你可以用一个演示应用程序来测试一下。

这个应用程序的目标是将一个给定的句子转换成一个叫做slug的URL友好字符串。slug通常用于将页面标题转换为URL路径,例如本教程中URL的最后部分。

首先导航到你的主目录。

cd ~
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

然后创建一个目录。将其称为slugify

mkdir slugify
Nach dem Login kopieren
Nach dem Login kopieren

创建完毕后,换到该目录中。

cd slugify
Nach dem Login kopieren
Nach dem Login kopieren

现在是时候在Packagist.org上搜索一个可以帮助生成蛞蝓的软件包。如果你在Packagist上搜索 "slug "这个词,你会得到一个与下面类似的结果。

Packagist Search

列表中每个软件包的右侧会有两个数字。箭头朝下的图标旁边的数字代表该软件包被安装了多少次,而带星形图标的数字代表软件包在GitHub上被加了多少次星。你还可以根据这些数字对搜索结果重新排序。一般来说,安装次数多、星级多的软件包往往更稳定,因为有很多人在使用它们。检查软件包的描述是否相关也很重要,以确保它是你所需要的。

对于这个教程,你需要一个字符串到蛞蝓的转换器。从搜索结果来看,软件包cocur/slugify 是一个很好的匹配,有合理数量的安装和星级。

Packagist上的软件包有一个供应商名称和一个软件包名称。每个包都有一个唯一的标识符(命名空间),其格式与GitHub用于其存储库的格式相同,即 vendor/package.你要安装的库使用命名空间cocur/slugify 。你需要这个命名空间,以便在你的项目中需要该包。

现在你知道了你要安装的软件包,运行composer require ,把它作为一个依赖项包括进去,同时为项目生成composer.json 文件。

composer require cocur/slugify
Nach dem Login kopieren
Nach dem Login kopieren

当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
Nach dem Login kopieren
Nach dem Login kopieren

正如这个输出所表明的,Composer会自动决定使用哪个版本的软件包。如果你现在检查你的项目目录,它将包含两个新文件:composer.jsoncomposer.lock ,以及一个vendor 目录。

ls -l
Nach dem Login kopieren
Nach dem Login kopieren
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
Nach dem Login kopieren
Nach dem Login kopieren

composer.lock 文件是用来存储每个已安装软件包的版本信息的。它也确保在别人克隆你的项目并安装其依赖项时使用相同的版本。vendor 目录是项目依赖项所在的地方。vendor 文件夹不需要提交到版本控制中,你只需要包括composer.jsoncomposer.lock 文件。

当安装一个已经包含composer.json 文件的项目时,运行composer install ,以便下载项目的依赖项。

接下来,查看版本约束。如果你检查你的composer.json 文件的内容,你会有类似下面的内容。

cat composer.json
Nach dem Login kopieren
Nach dem Login kopieren
Output{
    "require": {
        "cocur/slugify": "^4.1"
    }}
Nach dem Login kopieren
Nach dem Login kopieren

你可能会注意到在composer.json 的版本号之前有一个特殊的字符^ 。Composer支持几种不同的约束和格式来定义所需的软件包版本,以提供灵活性,同时也保持你的项目稳定。自动生成的composer.json 文件所使用的圆点(^)运算符是推荐的运算符,以实现最大的互操作性,遵循语义版本学。在这种情况下,它将4.1定义为最小兼容版本,并允许更新到5.0以下的任何未来版本。

一般来说,你不需要在你的composer.json 文件中篡改版本约束。然而,有些情况可能需要你手动编辑约束。例如,当你所需要的库的一个主要新版本发布时,你想要升级,或者当你想要使用的库不遵循语义版本划分时。

下面是一些例子,让你更好地了解Composer版本约束的工作方式。

约束 意义 允许的版本示例
^1.0 >= 1.0 < 2.01.0, 1.2.3, 1.9.9
^1.1.0>= 1.1.0 < 2.01.1.0, 1.5.6, 1.9.9
~1.0>= 1.0 < 2.0.01.0, 1.4.1, 1.9.9
~1.0.0>= 1.0.0 < 1.11.0.0, 1.0.4, 1.0.9
1.2.11.2.11.2.1
1.*>= 1.0 < 2.01.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
Nach dem Login kopieren
Nach dem Login kopieren

添加以下代码,引入vendor/autoload.php 文件,加载cocur/slugify 依赖关系,并创建一个slug。

test.php

<?php
require __DIR__ . &#39;/vendor/autoload.php&#39;; 
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!');
Nach dem Login kopieren
Nach dem Login kopieren

保存该文件并退出你的编辑器。如果你使用的是nano ,你可以按CTRL + X ,然后按YENTER 来完成。

现在运行该脚本。

php test.php
Nach dem Login kopieren
Nach dem Login kopieren

这将产生以下输出。

Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
Nach dem Login kopieren
Nach dem Login kopieren

当新版本出来时,依赖关系需要更新,所以你将在最后一步中学习如何处理这个问题。

第5步 - 更新项目的依赖关系

每当你想把你的项目依赖关系更新到最新的版本时,运行update 命令。

composer update
Nach dem Login kopieren

这将检查你在项目中作为需求添加的库的较新版本。如果发现一个新的版本,并且它与composer.json 文件中定义的版本约束兼容,Composer将替换之前安装的版本。composer.lock 文件将被更新以反映这些变化。

你也可以像下面这样指定一个或多个特定的库来更新它们。

composer update vendor/package vendor2/package2
Nach dem Login kopieren

请确保在你更新你的依赖关系后提交你的composer.jsoncomposer.lock 文件的变化,这样无论谁在项目中工作,都可以访问相同的软件包版本。

总结

Composer是每个PHP开发者都应该拥有的强大工具。在本教程中,你在 Debian 11 上安装了 Composer 并在一个项目中使用了它。你现在知道如何安装和更新依赖关系了。

除了提供一个可靠的方法来管理项目的依赖关系外,Composer 还建立了一个新的标准来分享和发现由社区创建的 PHP 包。

Das obige ist der detaillierte Inhalt vonIn vier Schritten erfahren Sie, wie Sie Composer unter Debian11 installieren und verwenden!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.im
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!