Composer使用要点

作者: 一只好奇的茂 | 来源:发表于2017-05-23 13:53 被阅读212次

composer原理

composer主要基于spl_autoload_register。
在执行了“composer install”后,composer先将在https://packagist.org/上依赖的包下载到vendor目录中,然后将所有依赖包的枚举写到vendor/composer/autoload_static.php中,再通过spl_autoload_register注册到SPL __autoload函数栈中即可。

composer.json添加模块

我们需要在 composer.json 文件中指定 require key 的值,以明确你的项目需要依赖哪些包。

  • composer.json的最小demo
{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}
  • 示例工程


  • 加入对本工程其他目录下所有class的依赖
    对ezSQL的依赖,则需要添加如下:
  "name": "marsthink",
  "description": "PHP class to make interacting with a database ridiculusly easy.",
  "license": "LGPL",
  "authors": [
{
      "name": "Jamal Jo",
      "email": "woshizmxin@163.com"
    }
  ],
  "autoload": {
    "classmap": [
      "ezSQL/"
    ]
  }
}

{
  "name": "marsthink",
  "description": "PHP class to make interacting with a database ridiculusly easy.",
  "license": "LGPL",
  "authors": [
    {
      "name": "Jamal Jo",
      "email": "woshizmxin@163.com"
    }
  ],
  "require": {
    "monolog/monolog": "1.0.*",
    "jpush/jpush": "v3.5.*"
  },
  "autoload": {
    "classmap": [
      "ezSQL/"
    ]
  }
}

引用composer.json的库

根据composer.json,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件:

require 'vendor/autoload.php';

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

// index.php
require 'vendor/autoload.php';

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

composer.lock - 锁文件

请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中

在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。如果不存在,Composer 将读取 composer.json 并创建锁文件。

这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。

修改镜像源

运行composer install时,有时候卡在Loading composer repositories with package information,此时需要更换镜像源头,方法如下:

  1. 方法一:修改 composer 的全局配置文件(推荐方式)
    打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
  1. 方法二:修改当前项目的 composer.json
    配置文件:
    打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com

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

注意:

  • 根据经验,每次部署代码时,由于工程内的依赖关系变化,建议先删除composer.lock,再运行composer install。

相关文章

网友评论

    本文标题:Composer使用要点

    本文链接:https://www.haomeiwen.com/subject/ragwxxtx.html