手写一个composer.json

在一个空目录下执行composer init命令,一路回车,生成一个初始化的compser.json文件

写入如下数据

{
    "name": "test-autoload",
    "description": "practise",
    "authors": [{
        "name": "dapeng",
        "email": "[email protected]"
    }],
    "require": {
        "monolog/monolog": "1.0.*"
    },
    "autoload": {
        "psr-4": {
            "src\\dapeng\\": "src/"
        },
        "files": ["common/app.php"],
        "classmap": ["lib/"]
    }
}

注释:

name 包名

包的名称,它包括供应商名称和项目名称,使用 / 分隔。
例:
monolog/monolog
igorw/event-source
对于需要发布的包(库),这是必须填写的。

description 描述

一个包的简短描述。通常这个最长只有一行。
对于需要发布的包(库),这是必须填写的。

authors 作者

包的作者。这是一个对象数组。这个对象必须包含以下属性:
name: 作者的姓名,通常使用真名。
email: 作者的 email 地址。
homepage: 作者主页的 URL 地址。
role**: 该作者在此项目中担任的角色(例:开发人员 或 翻译)。

require

require 需要一个 包名称 (例如 monolog/monolog) 映射到 包版本 (例如 1.0.*) 的对象。

  • 包名称
    包名称由供应商名称和其项目名称构成。通常容易产生相同的项目名称,而供应商名称的存在则很好的解决了命名冲突的问题。它允许两个不同的人创建同样名为 json 的库,而之后它们将被命名为 igorw/json 和 seldaek/json。

  • 包版本
    "php": ">=7.0.0",
    "barryvdh/laravel-cors": "^0.11.4",
    "fideloper/proxy": "~3.3",
    "laravel/framework": "5.5.*",

autoload

PHP autoloader 的自动加载映射。

  • psr-4
    psr-4的自动加载 key是 命名空间的前缀(末尾必须加\), value是 目录。
    composer install 后,存储到 vendor/composer/autoload_psr4.php 文件中

  • files
    如果你想要明确的指定,在每次请求时都要载入某些文件,那么你可以使用 'files' autoloading。通常作为函数库的载入方式(而非类库)。
    composer install 后,存储到 vendor/composer/autoload_files.php 文件中

  • Classmap
    你可以用 classmap 生成支持支持自定义加载的不遵循 PSR-0/4 规范的类库。要配置它指向需要的目录,以便能够准确搜索到类文件。
    composer install 后,存储到 vendor/composer/autoload_classmap.php 文件中

你可能感兴趣的:(手写一个composer.json)