Composer依赖管理工具

终极目标,通过composer下载一个日志类库

1.最简单的一句话概括composer是什么的(简介):

     Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

2.composer是怎么的(依赖管理):

     a) 你有一个项目依赖于若干个库。

     b) 其中一些库依赖于其他库。

     c) 你声明你所依赖的东西。

     d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)

Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

3.上干货,开始(安装composer)

      下载composer可执行文件

  局部安装:需要php5.3.2及以上环境

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

可能会出现The installation directory "/a/apps/linuxdef/composer" is not writable的情况

原因:php.ini中open_basedir可将用户访问文件的活动范围限制在指定的区域。 
可用符号”.”来代表当前目录。注意用open_basedir指定的限制实际上是前缀,而不是目录名 。 
举例来说: 若”open_basedir = /dir/user”, 那么目录 “/dir/user” 和 “/dir/user1”都是 
可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。例如设置成: 
“open_basedir = /dir/user/”

解决办法:sudo chown -R $(whoami):admin  /home/composer

注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器:

php -r "readfile('https://getcomposer.org/installer');" | php

        这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。

        你可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

 全局安装

      你可以将此文件放在任何地方。如果你把它放在系统的 PATH 目录中,你就能在全局访问它。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。

      你可以执行这些命令让 composer 在你的系统中进行全局调用:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

 4.怎么(开始使用composer):

       初次下载如果不存在composer.json文件手动创建一个

       需要在 composer.json 文件中指定 require key 的值。需要简单的告诉 Composer 你的项目需要依赖哪些包。


{
    "require": {
        "monolog/monolog": "1.2.1",
        " catfan/medoo" : '*',
    }
}

 然后执行:composer install 

5.包版本

名称实例描述
确切的版本号1.0.2你可以指定包的确切版本。
范围>=1.0 >=1.0,<2.0>=1.0,<1.1|>=1.2通过使用比较操作符可以指定有效的版本范围。 
有效的运算符:>>=<<=!=。 
你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。 
AND 的优先级高于 OR。
通配符1.0.*你可以使用通配符*来指定一种模式。1.0.*>=1.0,<1.1是等效的。
赋值运算符~1.2这对于遵循语义化版本号的项目非常有用。 ~1.2 相当于 >=1.2,<2.0,而 ~1.2.3 相当于 >=1.2.3,<1.3。使用 ~ 指定最低版本,但允许版本号的最后一位数字上升。

6.composer.lock-锁文件 

       在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中,这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。

7.composer install && composer require && composer update 的区别

    1)composer install

  install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。

      如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确        保了该库的每个使用者都能得到相同的依赖版本。

      如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

     2)  composer update

      为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令

      composer update
      这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。

      如果你只是想更新几个包,你可以像这样分别列出它们:

      composer update vendor/package vendor/package2
      还可以使用通配符进行批量更新:

     composer update vendor/*

      3)composer require

      composer require   "phpmailer/phpmailer : 1.0.x"  命令 和 在composer.json 文件中先声明好依赖 " phpmailer/phpmailer": "1.0.x" 再         执 行       composer update          是一样的效果。

      4)区别
       composer install命令(主要)用于生产环境,composer.lock文件记录项目当前版本信息,当执行install命令时,会检测lock文           件的各扩展版本与最新版本差别,如果有则更新到最新版。而composer update命令也会执行上述所讲,但是composer.json         文件添加库到require字段时就必须用composer update命令了。但这时会更新其他库的内容,此时如果只是添加某个库而不         更新其他库(例如生产环境),就要使用composer require "包名:版本号" 命令了。composer init --require=包名:版本号 -n 还           可以自动更新composer.json文件。


8.卸载composer

       执行命令:composer config -l -g | grep "home|dir" -E

      

      sudo apt remove composer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值