Composer (software)
| Composer | |
|---|---|
| Developer(s) | Nils Adermann, Jordi Boggiano |
| Initial release | March 1, 2012[1] |
| Stable release | 2.0.12
/ April 1, 2021[2] |
| Written in | PHP |
| Operating system | Cross-platform |
| Type | Package manager |
| License | MIT License |
| Website | getcomposer |
Composer는 PHP 소프트웨어 및 필수 라이브러리의 종속성을 관리하기 위한 표준 형식을 제공하는 PHP 프로그래밍 언어에 대한 애플리케이션-수준 패키지 관리자입니다. 그것은 프로젝트를 계속 관리하고 있는 Nils Adermann과 Jordi Boggiano에 의해 개발되었습니다. 그들은 2011년 4월에 개발을 시작하였고 2012년 3월 1일에 처음 출시했습니다.[1] Composer는 Node.js의 "npm"과 Ruby의 "bundler"에서 크게 영감을 받았습니다.[3] 프로젝트의 종속성 해결 알고리듬은 오픈수저의 libzypp satsolver의 PHP-기반 포트로 시작되었습니다.[4]
Composer는 명령줄에서 실행되고 응용 프로그램에 대한 종속성 (예를 들어, 라이브러리)을 설치합니다. 그것은 역시 사용자에게 사용 가능한 패키지가 포함하는 주요 저장소인 "Packagist"에서 사용 가능한 PHP 응용 프로그램을 설치하는 것을 허용합니다.[5] 그것은 역시 타사 코드를 쉽게 사용할 수 있도록 자동-로드 정보를 지정하는 라이브러리에 대한 자동-로드 기능을 제공합니다.
Installation
미디어위키 확장을 이용하기 위해, 설치가 필요합니다.
데비안 저장소에서 패키지로 제공하지 않기 때문에, 파일을 받아서 설치해야 합니다.
- curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
- sudo chmod +x /usr/local/bin/composer
최신 2.x 버전이 출시되었지만, 미디어위키는 아직 오직 1.x를 지원하는 플럭인이 있습니다. 따라서, 특정 버전을 설치하고 싶을 때, 아래와 같이 다운로드할 수 있습니다:
- curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.20
아래와 같이 설치된 버전을 확인할 수 있습니다:
- composer --version
Syntax
Commands
Composer는 다음을 포함한 여러 매개변수를 제공합니다:[6]
require: 라이브러리의 매개변수를 composer.json 파일에 추가하고, 그것을 설치합니다.install: composer.json에서 모든 라이브러리를 설치합니다. 이것은 모든 PHP 저장소 종속성을 다운로드하기 위해 사용하는 명령입니다.update: 언급된 허용 버전에 따라 composer.json에서 모든 라이브러리를 업데이트합니다.remove: 라이브러리를 제거하고 composer.json에서 제거합니다.
Libraries definition
다음 명령에 의해 생성된 composer.json의 예제:
composer require monolog/monolog
{
"require": {
"monolog/monolog": "1.2.*"
}
}
Versions
라이브러리의 다른 승인된 버전은 다음에 의해 정의됩니다:[7]
| 기호 | 역할 (버전 번호 앞에 위치) | 예제 |
|---|---|---|
| >= | 버전 번호를 확장하는 것을 허용합니다. 게다가, 다음을 사용할 수 있습니다: >, <, <=. | "php": ">=5.5.9" PHP 8을 포함합니다.
|
| != | 버전을 제외합니다. | |
| - | 버전의 범위를 정의합니다. | |
| * | 모든 하위버전을 확장합니다. | "symfony/symfony": "3.1.*" 3.1.1을 포함합니다.
|
| ~ | 같은 수준의 다음 버전으로 확장합니다. | "doctrine/orm": "~2.5" 역시 2.6에 해당하지만, 2.4도 아니고 3.0도 아닙니다.
|
| ^ | 오직 하위 버전과의 호환성이 있으면, 물결표와 같습니다. |
Supported frameworks
- Symfony version 2 and later
- Laravel version 4 and later
- CodeIgniter version 3.0 and later
- CakePHP version 3.0 and later
- FuelPHP version 2.0 and later
- Drupal version 8 and later
- TYPO3 version 6.2 and later
- SilverStripe version 3.0 later
- Magento version 2.0 later
- Yii version 1.1 and later
- Laminas
- Silex (web framework)
- Lumen (web framework)
Troubleshooting
wikimedia/at-ease
3.0.0로 버전 업데이트 후에 이전 방법으로 설치되지 않습니다. 다음과 같이 설치할 수 있습니다:
- sudo composer require wikimedia/at-ease wikimedia/utfnormal ruflin/elastica
확인해 보니, ^2.1로 바뀌어 있고, 어쨌든, 오류 메시지는 나오지 않습니다. 그런-다음 다시 업데이트를 진행하고, at-ease 버전을 원래대로 되돌리고 다시 업데이트를 진행합니다.
- sudo composer update --no-dev
- sudo nvim composer.json
- sudo composer update --no-dev
업데이트 오류
미디어위키 확장에서 외부 라이브러리를 업데이트하면 다음 오류가 생깁니다.
- sudo composer update --no-dev
- Failed to decode response: zlib_decode(): data error
- Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info
문제의 원인을 찾아보지 않았고, 다음과 같이 해결할 수 있습니다.
- sudo composer clear-cache
- sudo composer self-update
See also
References
- ^ a b Software release, github.com, Retrieved April 24, 2016.
- ^ "Composer". getcomposer.org. Retrieved Apr 26, 2021.
- ^ Getting Started/Dependency management, getcomposer.org, Retrieved November 28, 2013.
- ^ "composer/composer". Jun 23, 2020. Retrieved Jun 24, 2020 – via GitHub.
- ^ See packagist.org
- ^ "Command-line interface / Commands". getcomposer.org.
- ^ "Versions and constraints - Composer". getcomposer.org.
External links
- Official website
- Composer on GitHub
- Composer documentation
- Composer Tutorial
- Automate basic composer tasks in Laravel
- Packagist - the main Composer repository
- Composer at Open Hub