首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php系列一之composer的安装与使用

php系列一之composer的安装与使用

作者头像
山行AI
发布2019-11-20 22:25:06
4.3K0
发布2019-11-20 22:25:06
举报
文章被收录于专栏:山行AI山行AI

什么是 composer

简单来说,composer 之于 php 相当于 maven 和 gradle 之于 java,npm 之于 nodejs,pip 之于 python,go mod 之于 golang。是 php 中的一款依赖管理的工具。

如何安装 Composer

下载 Composer

安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。

打开命令行并依次执行下列命令安装最新版本的 Composer:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

执行第一条命令下载下来的 composer-setup.php 脚本将简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。

上述 3 条命令的作用依次是:

  1. 下载安装脚本 - composer-setup.php - 到当前目录。
  2. 执行安装过程。
  3. 删除安装脚本。

局部安装

上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!

全局安装

全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

Mac 或 Linux 系统:

打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:

sudo mv composer.phar /usr/local/bin/composer

Windows 系统:

找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。

@php "%~dp0composer.phar" %*

最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

最后

提示:不要忘了经常执行 composer selfupdate 以保持 Composer 一直是最新版本哦!

关于升级 Composer

Composer 升级时是无法利用我们的镜像加速下载的,而必须连接到 Composer 国外官网的服务器上下载升级文件,某些时候就会导致升级的速度非常慢甚至失败。

这里提供一个简单的办法:如果你的系统中已经有可以正常使用的 Composer 了,说明系统环境是符合要求的,那么只需要下载新的 Composer 文件并覆盖原来的文件即可。首先你要确定现有的 Composer 的安装目录,然后通过下面的链接下载 composer.phar 文件(复制以下地址到浏览器地址栏可直接下载),

https://install.phpcomposer.com/composer.phar

将前面下载的 composer.phar 文件覆盖系统中已经安装的 composer.phar 文件即可。注意,有可能在安装时将 composer.phar 改名为 composer 了,注意用同样的名字覆盖即可。

使用

查找包

  • 使用:https://packagist.org/ 进行依赖包的查找,有点类似于一个仓库。
  • 然后将依赖的信息配置到工程的 composer.json 中,执行 composer install 即可。
  • 也可以使用 composer search 指令查找依赖包。
  • 查看包的具体信息 composer show mustache/mustache --all

有一些国外的依赖,可能会下载不成功,这时就需要使用镜像了。

镜像

镜像用法

有两种方式启用本镜像服务:

  • 系统全局配置:即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”
  • 单个项目配置:将配置信息添加到某个项目的 composer.json 文件中。见“方法二”

方法一:修改 composer 的全局配置文件(推荐方式)

打开命令行窗口(windows 用户)或控制台(Linux、Mac 用户)并执行如下命令:

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

方法二:修改当前项目的 composer.json 配置文件:

打开命令行窗口(windows 用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

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

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):

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

以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):

{    "name": "laravel/laravel",    "description": "The Laravel Framework.",    "keywords": ["framework", "laravel"],    "license": "MIT",    "type": "project",    "require": {        "php": ">=5.5.9",        "laravel/framework": "5.2.*"    },    "config": {        "preferred-install": "dist"    },    "repositories": {        "packagist": {            "type": "composer",            "url": "https://packagist.phpcomposer.com"        }    }}

OK,一切搞定!试一下 composer install 来体验飞一般的速度吧!

镜像原理:

一般情况下,安装包的数据(主要是 zip 文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。

然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。

“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install 以及 composer update 的过程,并且更加快速、稳定。因此,即使 packagist.org、github.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。

解除镜象:

如果需要解除镜像并恢复到 packagist 官方源,请执行以下命令:

composer config -g --unset repos.packagist

执行之后,composer 会利用默认值(也就是官方源)重置源地址。

将来如果还需要使用镜像的话,只需要根据前面的“镜像用法”中介绍的方法再次设置镜像地址即可。

composer 使用

在使用 composer 后目录中会出现 2 个文件,composer.lock 和 composer.json,现在来说说这两个文件的作用。

composer.json

composer.json 文件中保存的是我们安装的组件及组件的版本要求。

comopser.lock

composer.lock 这个文件主要是解决在协同开发中组件及其依赖的版本记录,防止不同人使用的组件及依赖版本不同。composer.lock 保存的是组件及其依赖的具体版本,在多人协同开发的情况下,这个文件能很好的解决组件不同而产生的问题。在使用 composer install 的时候是不会修改 composer.lock 这个文件,所以会把这个文件也放入版本管理中,其它人在使用时只需要 composer install 就可以了。而使用 composer update 后修改这个文件。

参考

  • https://pkg.phpcomposer.com/#how-to-install-composer
  • https://packagist.org/packages/nesbot/carbon
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发架构二三事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 composer
  • 如何安装 Composer
    • 下载 Composer
      • 局部安装
        • 全局安装
          • Mac 或 Linux 系统:
            • Windows 系统:
              • 最后
                • 关于升级 Composer
                • 使用
                  • 查找包
                  • 镜像
                    • 镜像用法
                      • 方法一:修改 composer 的全局配置文件(推荐方式)
                      • 方法二:修改当前项目的 composer.json 配置文件:
                    • 镜像原理:
                      • 解除镜象:
                      • composer 使用
                        • composer.json
                          • comopser.lock
                          • 参考
                          相关产品与服务
                          内容分发网络 CDN
                          内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档