【PHP进阶学习】—关于PHP的composer使用

前言

日常开发过程中我们常常需要借鉴或者引用别人的代码,在github上我们可以看到一些开源的项目、代码块、函数库、类结构等,我们可以直接clone下来,然后用在我们自己的项目中。之前的php是手工将其他人的代码copy到自己的项目中,有更新我们同样也需要手动git pull文件。今天介绍和了解一下composer,作为一种包管理工具,composer可以更高效便捷地管理代码包。

一、概念

composer是PHP的包管理、包依赖关系管理工具,有了它,我们就很轻松一个命令就可以把他人优秀的代码用到我们的项目中来,而且很容易管理依赖关系,能高效便捷地进行更删查改操作。
目前composer支持5.3+之后的版本

二、composer的安装

1、终端执行命令:

curl -sS https://getcomposer.org/installer | php

注:php在编译安装时需要openssl扩展
2、安装完成composer可以测试是否完成:

php composer.phar

如果返回一个可执行的命令列表,则说明安装成功

3、配置成全局命令:

cp usr/local/composer/composer.phar /usr/bin/composer

三、composer的使用

Composer中的很多理念都借鉴自npm,如果你对这个工具有所了解的话,就会在composer中发现他的身影。Composer包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等东西。

1、引入依赖包:
作为一个用户,你所要做的就是创建composer.json文件并声明当前项目所依赖的开发包,然后运行composer install就行了:
composer.json:该文件定义了当前项目所依赖的开发包和composer的配置信息。

2、composer.json文件的编写:
(1)require Key:你需要在composer.json文件中指定require key的值。你只需要简单的告诉Composer你的项目需要依赖哪些包,格式如下:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

其中monolog/monolog是包名称,1.0是包版本,*可以指定最小版本为任意版本(也可用>=或<指定某版本之后或之前的版本)

(2)安装composer依赖包之后,自动生成composer.lock文件,该文件记录了json文件的依赖引入记录,在每次composer install或composer update之后会重新生成这个文件

四、Packagist

packagist是Composer的主要资源库。一个Composer的库基本上是一个包的源:记录了可以得到包的地方。Packagist的目标是成为大家使用库资源的中央存储平台。这意味着你可以require那里的任何包,也可以把自己在GitHub上的代码打包到Packagist供大家使用。
任何支持Composer的开源项目应该发布自己的包在packagist上。虽然并不一定要发布在packagist上来使用Composer,但它使我们的编程生活更加便捷。
如果你在自己的Github仓库中新建了tag或更新了代码,packagist都会自动构建一个新的开发包

五、使用规范

1、一般来说我们会在一个需要引入资源包的项目中,把composer.json放在项目根目录,然后运行安装依赖,生成.lock文件;
2、项目中创建vendor文件夹,composer.json中require的包都保存到改文件夹下;
3、更换镜像的问题:有时候可以根据需要更换Packagist的镜像源地址以便加快安装时间或者使用最新镜像,命令如下:
(1)切换到原始镜像:

composer config -g repo.packagist composer https://packagist.org

(2)laraval镜像:

composer config -g repo.packagist composer https://packagist.laravel-china.org

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值