>  기사  >  개발 도구  >  Composer 종속성 관리(PHP 도구)

Composer 종속성 관리(PHP 도구)

藏色散人
藏色散人앞으로
2020-01-26 16:01:354180검색

Composer 종속성 관리(PHP 도구)

PHP 확장 패키지를 어디에서나 검색하지 마세요. 최신 언어의 경우 패키지 관리자가 기본적으로 표준입니다. Java에는 Maven이 있고, Python에는 pip가 있고, Ruby에는 gem이 있고, Nodejs에는 npm이 있습니다. PHP는 PEAR이지만 PEAR에는 많은 함정이 있습니다.

● 종속성 처리에 문제가 발생하기 쉽습니다

● 구성이 매우 복잡합니다

● 명령줄 인터페이스를 사용하기 어렵습니다

다행히도 Composer, PHP 종속성 관리가 있습니다. 무기. 오픈 소스이고 사용이 간편하며 자신만의 패키지를 제출하기도 쉽습니다.

예를 들어 처음에 프레임워크를 사용하지 않고 인증 코드를 원할 경우 먼저 Gihutb나 다른 곳으로 가서 인증 코드 클래스를 찾은 다음 프로젝트에 포함시킨 다음 편집하고 실행해야 합니다. 이므로 추후 프로젝트 유지관리 시 문제가 발생할 수 있습니다. Github의 오픈 소스인 경우 watch를 클릭하여 버그 수정이나 새 버전이 릴리스되었는지 확인할 수 있으며 적시에 업그레이드에 대한 후속 조치를 취할 수 있습니다.

너무 많은 확장팩을 다운로드하면 다양한 포함이 필요할 수 있으며, 네임스페이스 충돌도 있을 수 있습니다. 확장팩이 업그레이드되면 네임스페이스를 변경해야 합니다. 다시 말하지만 이것은 매우 불편합니다. 그래서 Composer 종속성 관리 라이브러리가 탄생했습니다.

위는 Compser에 대한 더 중요한 수요 시나리오입니다.

1. 확장팩 설치 및 업그레이드가 쉽습니다

2. 어디에서나 include를 작성할 필요가 없습니다.

3. 네임스페이스 충돌 방지

저는 주로 Github, Code Cloud 및 기타 플랫폼에서 확장을 찾습니다. 팩이지만 지금은 모든 패키지를 통합하는 웹사이트도 있는데, 이는 현재 개발 방식을 의미합니다. 먼저 packagist에서 검색한 다음 Composer를 사용하여 설치하고 업그레이드하는 것입니다.

Composer 설치

완전한 설치를 위해 https://getcomposer.org/Composer-Setup.exe를 클릭하고 다운로드하여 설치하면 설치 프로그램이 Composer를 다운로드하고 PATH 환경 변수를 설정합니다. 어떤 디렉터리에서든 Composer를 호출할 수 있습니다.

설치 과정에서 주의해야 할 것은 php.exe의 루트 디렉터리를 찾아 올바른 PHP 경로를 선택하는 것입니다. 아직 다운로드하지 않았고 수동으로 설치했기 때문에 여기에 스크린샷을 제공하지 않겠습니다.

선택한 디렉터리는 다음과 같아야 합니다.

D:\phpStudy\php\php-7.0.12-nts\php.exe

다음에서는 수동 설치에 중점을 둘 것입니다. 이 방법은 사용하기 매우 쉽다고 생각합니다.

먼저 작곡가.phar 파일을 다운로드하고 개발자에 phar 파일을 넣습니다. 폴더, 원하는 대로 이 작업을 수행할 수 있으며 어느 폴더에 배치해야 하는지에 대한 제한은 없습니다.

그런 다음 DOS 창을 열거나 단축키 windows+R을 사용하여 cmd를 입력하고 다음 명령을 사용하여 먼저 phar 파일이 있는 디렉터리를 입력하세요

D:\developer\composer>echo @php "%~dp0composer.phar" %*>composer.bat

성공적인 설치의 표시는

composer -v

를 입력하는 것입니다. 다음 내용을 표시하는 명령줄

Composer 종속성 관리(PHP 도구)

이것을 보면 Composer가 성공적으로 설치되었다고 가정합니다. 중국 LAN에서는 Composer를 사용하는 것이 비교적 느리지만 다행히 국내 미러가 있습니다. 국내 미러로 전환하는 명령 국내 미러가 하는 일 가장 좋은 점은 모든 설치 패키지와 메타데이터를 국내 전산실에 캐시하고 국내 CDN을 통해 가속시켜 해외 사이트에 요청할 필요가 없도록 하는 것입니다.

composer config -g repo.packagist composer https://packagist.phpcomposer.com

이렇게 하는 것은 구성을 전체적으로 변경하는 것과 같습니다. 저는 현재 프로젝트의 작곡가.json 구성 파일을 수정하기로 선택했습니다:

{
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

composer common Commands

<code><strong>selfupdate</strong>

更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。

composer selfupdate

等价于

composer self-update

<strong>dumpautoload</strong>

当我们更改了 composer.json 文件中的 autoload 时,需要执行 composer dumpautoload,来让 autoload 立即生效。而不必执行 install 或 update 命令。

composer dumpautoload

等价于

composer dump-autoload

dumpautoload 命令有两个常用的选项:

--optimize (-o): 转换 PSR-0/4 autoloading 到 classmap ,以获得更快的载入速度。这特别适用于生产环境,但可能需要一些时间来运行,因此它目前不是默认设置。

--no-dev: 禁用 autoload-dev 规则。

 

install

composer install

 

依据当前目录下的 composer.lock(锁文件) 或 composer.json 文件,所定义的依赖关系,安装依赖包。

install 命令会先检查 composer.lock 锁文件是否存在,如果存在,它将下载 composer.lock 文件中指定的版本,而忽略 composer.json 文件中的定义。

# 查看 composer install 的帮助信息
composer install -h
# 只安装 require 中定义的依赖,而不安装 require-dev 中定义的依赖
composer install --no-dev

<strong>update</strong>

如果你想更新你的依赖版本,或者你修改了 composer.json 中的依赖关系,想让 composer 按照 composer.json 文件中的定义执行更新操作,就用 update 命令。

composer update

 

<strong>require</strong>selfupdate

code> 🎜🎜Composer 자체를 업데이트하세요. Composer를 항상 최신 상태로 유지하려면 Composer 자체 업데이트를 자주 수행하세요. 🎜
composer require barryvdh/laravel-ide-helper
🎜는 🎜
composer require --dev barryvdh/laravel-ide-helper
🎜🎜dumpautoload🎜🎜🎜와 동일합니다. Composer.json 파일에서 자동 로드를 변경할 때 자동 로드가 즉시 적용되도록 작곡가 dumpautoload를 실행해야 합니다. 설치 또는 업데이트 명령을 실행할 필요가 없습니다. 🎜
# 安装 Laravel 项目
composer create-project --prefer-dist laravel/laravel blog 5.5.*
🎜는 🎜
The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The "https://getcomposer.org/download/1.2.0/composer.phar.sig" file could not be downloaded: SSL: crypto enabling timeout
Failed to enable crypto
failed to open stream: operation failed
🎜dumpautoload 명령과 동일하며 일반적으로 사용되는 두 가지 옵션이 있습니다. 🎜🎜--optimize (-o): 더 빠른 로딩 속도를 위해 PSR-0/4 자동 로딩을 클래스맵으로 변환합니다. 이는 특히 프로덕션 환경에 적합하지만 실행하는 데 시간이 걸릴 수 있으므로 현재 기본값은 아닙니다. 🎜🎜--no-dev: autoload-dev 규칙을 비활성화합니다. 🎜🎜🎜🎜🎜install🎜🎜
openssl.cafile = "D:\phpStudy\tmp\cacert.pem"
🎜🎜🎜현재 디렉터리의 작곡가.잠금(잠금 파일) 또는 작곡가.json 파일에 정의된 종속성을 기반으로 종속 패키지를 설치합니다. 🎜🎜install 명령은 먼저 작곡가.잠금 파일이 있는지 확인합니다. 만약 존재한다면, 작곡가.json 파일의 정의를 무시하고 작곡가.잠금 파일에 지정된 버전을 다운로드합니다. 🎜
failed to open stream: HTTP request failed!
🎜🎜update🎜🎜🎜종속성 버전을 업데이트하려는 경우 또는 작곡가.json에서 종속성 관계를 수정하는 경우 작곡가가 작곡가.json에 정의된 대로 업데이트 작업을 수행하도록 할 수 있습니다. 파일을 업데이트하려면 업데이트 명령을 사용하세요. 🎜
allow_url_fopen = On
user_agent="PHP"
🎜 🎜🎜🎜require🎜🎜

require 命令一般用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。

如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。

<strong>composer require</strong>

 

你也可以直接在命令中指明需要安装的依赖包。

composer require barryvdh/laravel-ide-helper

 

--dev 选项和 require-dev 相对应。如果你的依赖包仅仅用于开发环境,建议加上 --dev 选项。

composer require --dev barryvdh/laravel-ide-helper

 

 

<strong>create-project</strong>

你可以使用 create-project 从现有的包中创建一个新的项目。

它相当于执行了 git clone 命令后,将这个包的依赖安装到它自己的 vendor 目录。

此命令有几个常见的用途:

你可以快速的部署你的应用。

你可以检出任何资源包,并开发它的补丁。

多人开发项目,可以用它来加快应用的初始化。

# 安装 Laravel 项目
composer create-project --prefer-dist laravel/laravel blog 5.5.*

 

如果没有指定版本号,就默认安装最新的版本。

--prefer-dist: 当有可用的包时,从 dist 安装。

phpStudy集成环境下 安装composer失败

报错提示:

The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The "https://getcomposer.org/download/1.2.0/composer.phar.sig" file could not be downloaded: SSL: crypto enabling timeout
Failed to enable crypto
failed to open stream: operation failed

 

1、安装composer需要开启openssl拓展 而phpstudy默认是关闭的

2、将php目录下的ssleay32.dll,libeay32.dll以及php/ext文件夹下的:php_openssl.dll 3个文件拷贝到WINDOWS\system32 文件夹下。

3、openssl需要CA证书 phpstudy也是没有的

CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

选中之后单击右键选择另存为

下载成功之后放到tmp文件夹下面

4、然后修改php.ini文件

openssl.cafile = "D:\phpStudy\tmp\cacert.pem"

 

5、重启phpStudy就可以了报错提示:

failed to open stream: HTTP request failed!

 

1、检查一下php的curl拓展是否开启

2、检查这两个配置是否开启。

allow_url_fopen = On
user_agent="PHP"

 

也可以这样配置 user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")

模拟浏览器访问也是一个不错的选择

3、开启之后重启重启phpStudy就可以了

 

PS: openssl.cafile 配置选项, 是 PHP 5.6.0. 以上的版本才支持的

更多composer相关技术文章,请访问composer栏目:https://www.php.cn/tool/composer/

위 내용은 Composer 종속성 관리(PHP 도구)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제