zoukankan      html  css  js  c++  java
  • php composer使用

    Composer-PHP中用来管理依赖(dependency)

    定义

    1. composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。
    2. Composer 需要PHP5.3.2+ 以上的环境来运行。有几个敏感的PHP设置和编译标志也是必需的,但安装程序会发出警告当存在任何不兼容的情况。
    3. Composer 是兼容多平台的,其运行适用于Windows,Linux和OSX。

    安装

    1. linux
      • curl -sS https://getcomposer.org/installer | PHP
      • 你可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径)
      • 全局安装
        mv composer.phar /usr/local/bin/composer
        现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。
    2. windows
      下载 https://getcomposer.org/Composer-Setup.exe
      windows可能需要设置composer的环境变量
    3. composer -V 查看版本号
      composer -help 查看命令帮助
    4. 参考文献
      http://docs.phpcomposer.com/
    5. composer 中国镜像的使用
      http://pkg.phpcomposer.com/

    composer.json 文件说明

    1. require key

       {
           "require": {
               "monolog/monolog": "1.0.*"
           }
       }
      
      • require 需要一个 包名称 (例如 monolog/monolog) 映射到 包版本 (例如 1.0.*) 的对象。
      • 包名称由供应商名称和其项目名称构成
    2. 版本运算符

      • 确切版本 1.0.2
      • 通配符 1.0.* 1.0的所有版本
      • 范围 >、>=、<、<=、!= ,你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。
      • 赋值运算符 1.2,1.2相当于>=1.2,<2.0, 允许1.2以上的任何版本,但不包括2.0。你还会看到它的另一种用法,使用 ~ 指定最低版本,但允许版本号的最后一位数字上升。
    3. 执行安装 php composer.phar install

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

      • 在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。
      • 使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。php composer.phar update
      • 如果只想安装或更新一个依赖,你可以白名单它们:
        php composer.phar update monolog/monolog [...]
    5. 自动加载

      • 对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。
        require 'vendor/autoload.php';

      • 你可以在 composer.json 的 autoload 字段中增加自己的 autoloader。

          {
              "autoload": {
                  "psr-4": {"Acme\": "src/"}
              }
          }
        
      • 你可以定义一个从命名空间到目录的映射。此时 src 会在你项目的根目录,与 vendor 文件夹同级。例如 src/Foo.php 文件应该包含 AcmeFoo 类。
        添加 autoload 字段后,你应该再次运行 install 命令来生成 vendor/autoload.php 文件。

      • 引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。

          $loader = require 'vendor/autoload.php';
          $loader->add('Acme\Test\', __DIR__);
        

    使用示例

    1. 基本命令的使用

    2. 一个最小化的composer.json,切换到项目目录,新建一个composer.json

       {
           "require-dev": {
               "phpunit/phpunit": "4.3.*"
           }
       }
      
    3. 执行 composer install

      • 会创建vendor目录,里面就是相关的代码。
      • 会创建composer.lock文件
      • 会生成 vendor/autoload.php 是自动加载的php文件
  • 相关阅读:
    [CF1342D] Multiple Testcases
    [CF448D] Multiplication Table
    [CF459C] Pashmak and Buses
    [CF766E] Mahmoud and a xor trip
    [CF35E] Parade
    [CF15C] Industrial Nim
    [CF9D] How many trees?
    [CF19B] Checkout Assistant
    [CF22D] Segments
    [CF21D] Traveling Graph
  • 原文地址:https://www.cnblogs.com/xyloo/p/4250386.html
Copyright © 2011-2022 走看看