zoukankan      html  css  js  c++  java
  • composer:php的依赖管理工具

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

    overview

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

    解决和下载依赖,请执行 install 命令:

    php composer.phar install
    

    自动加载:Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中。

    require 'vendor/autoload.php';
    

    使用

    项目安装

    在你的项目中使用 Composer,你只需要一个 composer.json文件。该文件包含了项目的依赖和其它的一些元数据。

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

    包名称

    由供应商名称和其项目名称构成。

    包版本

    约束方法:

    • 确切的版本号 1.0.2
    • 范围
      通过使用比较操作符可以指定有效的版本范围。
      有效的运算符:>、>=、<、<=、!=。
      你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。
      AND 的优先级高于 OR。
    >=1.0
    >=1.0,<2.0
    >=1.0,<1.1|>=1.2
    
    • 通配符 1.0.*
    • 赋值运算符 ~1.2
      ~1.2相当于>=1.2,<2.0
      ~1.2.3 相当于 >=1.2.3,<1.3

    默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。

    安装依赖包

    php composer.phar install
    

    这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。
    install 命令将创建一个 composer.lock 文件到你项目的根目录中。
    tips:如果你正在使用Git来管理你的项目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不会希望将所有的代码都添加到你的版本库中。

    composer.lock - 锁文件

    在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。
    请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中。
    install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
    lock后要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。

    php composer.phar update
    

    选择更新:

    php composer.phar update monolog/monolog [...]
    

    更新自己:

    composer selfupdate 
    

    Packagist

    packagist 是 Composer 的主要资源库。
    访问 packagist website (packagist.org),你可以浏览和搜索资源包。

    自动加载

    库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。

    require 'vendor/autoload.php';
    

    这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。

    $log = new MonologLogger('name');
    $log->pushHandler(new MonologHandlerStreamHandler('app.log', MonologLogger::WARNING));
    
    $log->addWarning('Foo');
    

    使用国内的镜像

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

    方法一: 修改 composer 的全局配置文件

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

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

    进入项目根目录(也就是 composer.json 文件所在目录),执行如下命令:

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

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

    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
    
  • 相关阅读:
    centos6.5下redis的安装与配置
    (函数分治法)实现pow函数(x的y次方幂)
    (数组)大数相乘,相加
    (树)根据排序数组或者排序链表重新构建BST树
    (合并 重叠数组)练习容器的用法
    (动态规划)最小分糖果问题
    (链表)链表的排序问题
    (链表)链表和加法的混合
    (函数)实现strstr函数
    (字符串动态规划)一个字符串变成另一个字符串的步骤数
  • 原文地址:https://www.cnblogs.com/jcuan/p/6013564.html
Copyright © 2011-2022 走看看