Debian11 に Composer をインストールして使用する方法を説明する 4 つのステップ!

藏色散人
リリース: 2022-11-08 20:41:00
転載
2338 人が閲覧しました

この記事は、composer のチュートリアル コラムによって、Debian11 に Composer をインストールして使用する方法を段階的に紹介するために書かれたものです。それを必要としている友人たちの役に立ちます。

Composer は、主にプロジェクトの依存関係のインストールと更新を容易にする、人気のある PHP 依存関係管理ツールです。 Composer は、特定のプロジェクトが依存する他のパッケージを確認し、プロジェクトの要件に基づいて適切なバージョンでそれらのパッケージをインストールすることによって機能します。 Composer は、Symfony や Laravel などの一般的な PHP フレームワークに基づいて新しいプロジェクトをブートストラップするためにもよく使用されます。

このガイドでは、Debian 11 サーバーに Composer をインストールして使用します。

前提条件

このチュートリアルに従うには、Debian 11 サーバーをセットアップし、非 root ユーザー sudo を含めて、ファイアウォールを有効にする必要があります。これは、Debian 11 の初期サーバー設定ガイドに従って行うことができます。

ステップ 1 - 依存関係のインストール

Debian 11 システムに既に含まれている可能性のある依存関係に加えて、Composer ではコマンド ラインを実行するために php-cli が必要です。 PHP スクリプトを実行し、unzip して圧縮ファイルを解凍します。

まず、パッケージ マネージャーのキャッシュを更新します。

sudo apt update
ログイン後にコピー

次に、依存関係をインストールします。 Composer をダウンロードするには curl が必要で、インストールして実行するには php-cli が必要です。 php-mbstring パッケージは、このチュートリアルで使用するライブラリの機能を提供するために必要です。 git は Composer によってプロジェクトの依存関係をダウンロードするために使用され、unzip は圧縮パッケージを抽出するために使用されます。次のコマンドを使用してすべてをインストールできます。

sudo apt install curl php-cli php-mbstring git unzip
ログイン後にコピー

すべての依存関係をインストールしたら、Composer をインストールできます。

ステップ 2 - Composer のダウンロードとインストール

Composer には、PHP で書かれたインストーラーが用意されています。これをダウンロードし、破損していないことを確認してから、それを使用して Composer をインストールします。

まず、ホーム ディレクトリにいることを確認してください。

cd ~
ログイン後にコピー
ログイン後にコピー

次に、curl を使用してインストーラーを取得します。

curl -sS https://getcomposer.org/installer -o composer-setup.php
ログイン後にコピー

次に、インストーラーが Composer の公開キー/署名ページで最新のインストーラーの SHA-384 ハッシュと一致することを確認します。検証手順を容易にするために、次のコマンドを使用してプログラムでコンポーザー ページから最新のハッシュ値を取得し、それをシェル変数に保存できます。

HASH=`curl -sS https://composer.github.io/installer.sig`
ログイン後にコピー

取得した値を出力するには、実行します。

echo $HASH
ログイン後にコピー
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae复制代码
ログイン後にコピー

次に、Composer のダウンロード ページで提供されている次の PHP コードを実行して、インストール スクリプトが安全に実行できることを確認します。

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
ログイン後にコピー

メッセージ インストーラーが壊れています を受け取った場合は、インストール スクリプトを再度ダウンロードし、正しいハッシュを使用していることを確認する必要があります。次に、コマンドを実行してインストーラーを再度確認します。検証済みのインストーラーを入手したら、次に進む準備が整います。

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 comboser-setup.php を使用します。これにより、現在のディレクトリに composer.phar ファイルが生成されます。./composer.phar コマンドを使用できます。.

Composer がインストールされたので、次の手順を実行します。ワンステップで、Composer を使用して PHP の依存関係を管理する方法を学びます。

ステップ 3 - PHP プロジェクトで Composer を使用する

PHP プロジェクトは外部ライブラリに依存することが多く、これらの依存関係とそのバージョンの管理は難しい場合があります。 Composer は、依存関係を追跡し、他の人が依存関係を簡単にインストールできるようにすることで、この問題を解決します。

プロジェクトで Composer を使用するには、composer.json ファイルが必要です。 composer.json ファイルは、プロジェクト用にダウンロードする必要がある依存関係と、インストールが許可されている各パッケージのバージョンを Composer に伝えます。これは、プロジェクト内の一貫性を維持し、下位互換性の問題を引き起こす可能性のある不安定なバージョンのインストールを避けるために重要です。

このファイルを手動で作成する必要はありません。手動で作成するとエラーが発生しやすく、構文エラーが発生する可能性があります。 composer require コマンドを使用してプロジェクトに依存関係を追加すると、Composer は composer.json ファイルを自動的に生成します。このファイルを手動で編集しなくても、同じ方法を使用して依存関係を追加できます。

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

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

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

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

首先导航到你的主目录。

cd ~
ログイン後にコピー
ログイン後にコピー

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

mkdir slugify
ログイン後にコピー

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

cd slugify
ログイン後にコピー

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

Packagist Search

列表中每个软件包的右侧会有两个数字。箭头朝下的图标旁边的数字代表该软件包被安装了多少次,而带星形图标的数字代表软件包在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.jsoncomposer.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.jsoncomposer.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.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.31.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__ . &#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!');<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
ログイン後にコピー

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

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

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

composer update
ログイン後にコピー

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

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

composer update vendor/package vendor2/package2
ログイン後にコピー

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

总结

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

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

以上がDebian11 に Composer をインストールして使用する方法を説明する 4 つのステップ!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.im
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート