composer史上最全解析

…衆ロ難τιáo~ 提交于 2019-11-28 18:22:47

通过阅读下文,您将获得以下知识点

1、Composer是什么
2、如何使用composer ?
3、如何编写composer.json文件?

Composer是什么?

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

Composer拉取composer.json中的声明的依赖到本地的vendor目录中,并提供了加载该文件的入口。

Composer 将这样为你解决问题:
a) 你有一个项目依赖于若干个库。
b) 其中一些库依赖于其他库。
c) 你声明你所依赖的东西。
d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中

Composer的简单使用

我们声明一个依赖管理文件composer.json, 内容如下

{
    "require": {
        "predis/predis": "v1.1.1"
    }
}

声明依赖predis及其版本,在composer.json目录运行php composer.phar install 命令安装依赖,同级目录会出现一个vendor文件夹,其包含所有的依赖。

require 'vendor/autoload.php';
//然后你就可以随心所欲的用predis的类进行操作了
//注意必需声明使用命名空间
use Predis\Client;

如果没有安装composer, 可以使用以下命令

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
或者到官网下载包到指定路径下可以

如何编写composer.json

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

注意必须是json格式的。

1、require 包名称 由供应商和项目名称组成,通常在包的库中可以找到。

2、包版本:支持大于或者逻辑指定,比如>=1.0 >=1.0,<2.0 >=1.0, <1.1|>=1.2
注意波浪线~1.2指的是>=1.2,<2.0版本:使用 ~ 指定最低版本,但允许版本号的最后一位数字上升。

3、description: 一个包的简短描述。通常这个最长只有一行。对于需要发布的包(库),这是必须填写的。
4、type: library: 这是默认类型,它会简单的将文件复制到 vendor 目录。
5、keywords:该包相关的关键词的数组。这些可用于搜索和过滤。
6、homepage:主页地址
7、time:版本发布时间。
必须符合 YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS 格式。
8、license:包的许可协议
9、authors:作者
10、support: 获取项目支持的向相关信息对象。
11、autoload : PHP autoloader 的自动加载映射。
Classmap
classmap 引用的所有组合,都会在 install/update 过程中生成,并存储到 vendor/composer/autoload_classmap.php 文件中。这个 map 是经过扫描指定目录(同样支持直接精确到文件)中所有的 .php 和 .inc 文件里内置的类而得到的。

{
    "name": "haodf/sparta",
    "description": "aliyun framework",
    "authors": [
        {
            "name": "Nils Adermann",
            "email": "naderman@naderman.de",
            "homepage": "http://www.naderman.de",
            "role": "Developer"
        },
        {
            "name": "Jordi Boggiano",
            "email": "j.boggiano@seld.be",
            "homepage": "http://seld.be",
            "role": "Developer"
        }
    ],
     "support": {
        "email": "support@example.org",
        "irc": "irc://irc.freenode.org/composer"
    },
    "repositories": [
        {
            "packagist.org": false
        },
        {
           "type": "composer",
           "url": "https://packagist.phpcomposer.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "Aliyun\\Foundation\\": "Aliyun/src/",
            "Aliyun\\Framework\\": "Aliyun/src/"
        },
        "files": ["Framework/src/functions_include.php"]
    },
    "minimum-stability": "dev"
}

文章来源:https://docs.phpcomposer.com

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!