> 개발 도구 > composer > 본문

Debian11에서 Composer를 설치하고 사용하는 방법을 가르치는 4단계!

藏色散人
풀어 주다: 2022-11-08 20:41:00
앞으로
2296명이 탐색했습니다.

이 글은 composer튜토리얼 칼럼에서 Debian11에서 Composer의 단계별 설치 및 사용법을 소개하기 위해 작성되었습니다. 매우 상세합니다~ 필요한 친구들에게 도움이 되길 바랍니다!

Composer는 주로 프로젝트 종속성의 설치 및 업데이트를 용이하게 하는 인기 있는 PHP 종속성 관리 도구입니다. Composer는 특정 프로젝트가 의존하는 다른 패키지를 확인한 다음 프로젝트 요구 사항에 따라 적절한 버전으로 설치하는 방식으로 작동합니다. Composer는 Symfony 및 Laravel과 같은 널리 사용되는 PHP 프레임워크를 기반으로 하는 새 프로젝트를 부트스트랩하는 데에도 일반적으로 사용됩니다.

이 가이드에서는 Debian 11 서버에 Composer를 설치하고 사용합니다.

전제 조건

이 튜토리얼을 따르려면 Debian 11 서버를 설정하고 루트가 아닌 사용자 sudo를 포함하고 방화벽을 활성화해야 합니다. 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

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的依赖性。

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

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

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

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

1단계 - 종속성 설치 🎜Debian 11 시스템에 이미 포함되어 있을 수 있는 종속성 외에도 Composer를 실행하려면 php-cli가 필요합니다. 명령줄에서 PHP 스크립트를 실행하고 압축 해제하여 압축 파일을 추출합니다. 🎜🎜먼저 패키지 관리자의 캐시를 업데이트하세요. 🎜
cd ~
로그인 후 복사
로그인 후 복사
로그인 후 복사
🎜 다음으로 종속성을 설치합니다. Composer를 다운로드하려면 curl이 필요하고 설치 및 실행하려면 php-cli가 필요합니다. 이 튜토리얼에서 사용할 라이브러리에 대한 기능을 제공하려면 php-mbstring 패키지가 필요합니다. git은 Composer에서 프로젝트 종속성을 다운로드하는 데 사용되는 반면, unzip은 압축된 패키지를 추출하는 데 사용됩니다. 다음 명령을 사용하여 모든 것을 설치할 수 있습니다. 🎜
mkdir slugify
로그인 후 복사
로그인 후 복사
🎜모든 종속성을 설치한 후 이제 Composer를 설치할 수 있습니다. 🎜

2단계 - Composer 다운로드 및 설치🎜🎜Composer는 PHP로 작성된 설치 프로그램을 제공합니다. 다운로드하여 손상되지 않았는지 확인한 다음 이를 사용하여 Composer를 설치합니다. 🎜🎜먼저 홈 디렉토리에 있는지 확인하세요. 🎜
cd slugify
로그인 후 복사
로그인 후 복사
🎜그런 다음 curl을 사용하여 설치 프로그램을 검색하세요. 🎜
composer require cocur/slugify
로그인 후 복사
로그인 후 복사
🎜 다음으로 Composer 공개 키/서명 페이지에서 설치 프로그램이 최신 설치 프로그램의 SHA-384 해시와 일치하는지 확인하세요. 확인 단계를 용이하게 하기 위해 다음 명령을 사용하여 작성기 페이지에서 프로그래밍 방식으로 최신 해시 값을 가져와서 셸 변수에 저장할 수 있습니다. 🎜
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
로그인 후 복사
로그인 후 복사
🎜얻은 값을 출력하려면 실행하세요. 🎜
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 다운로드 페이지에 제공된 대로 다음 PHP 코드를 실행하여 설치 스크립트가 안전하게 실행되는지 확인하세요. 🎜
cat composer.json
로그인 후 복사
로그인 후 복사
🎜출력은 다음과 같습니다. 🎜
Output{
    "require": {
        "cocur/slugify": "^4.1"
    }}
로그인 후 복사
로그인 후 복사
🎜 설치 프로그램 손상 메시지가 표시되면 설치 스크립트를 다시 다운로드하고 올바른 해시를 사용하고 있는지 확인해야 합니다. 그런 다음 명령을 실행하여 설치 프로그램을 다시 확인하십시오. 설치 프로그램이 확인되면 계속 진행할 수 있습니다. 🎜🎜 composer를 전역적으로 설치하려면 다음 명령을 사용하여 /usr/local/bin에서 <code>composer라는 시스템 전체 명령으로 Composer를 다운로드하고 설치하세요. 코드>. 🎜
nano 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!');
로그인 후 복사
로그인 후 복사
🎜 이 명령을 실행하여 설치를 테스트하세요. 🎜
php test.php
로그인 후 복사
로그인 후 복사
🎜그러면 출력에는 아래와 유사한 Composer의 버전과 매개변수가 표시됩니다. 🎜
Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
로그인 후 복사
로그인 후 복사
🎜이것은 Composer가 시스템에 성공적으로 설치되었으며 시스템 전체에서 사용할 수 있는지 확인합니다. 🎜🎜**참고:** 이 서버에서 호스팅하는 각 프로젝트에 대해 별도의 Composer 실행 파일을 갖고 싶다면 프로젝트별로 로컬로 설치할 수 있습니다. NPM 사용자는 이 접근 방식에 익숙할 것입니다. 이 방법은 시스템 사용자에게 시스템 전체에 소프트웨어를 설치할 수 있는 권한이 없는 경우에도 유용합니다. 🎜🎜이 작업을 수행하려면 php 작곡가-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.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__ . &#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!');
로그인 후 복사
로그인 후 복사

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

现在运行该脚本。

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.im
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!