下载APP 编程狮,随时随地学编程
返回 首页

Composer 教程

如何为我的框架自定义一个资源包安装目录?

如何为我的框架自定义一个资源包安装目录?

每个框架都可能有一个或多个不同的依赖包安装目录。Composer 可以通过使用 composer/installers 来配置,安装依赖到其它的目录,而不是默认的 vendor 目录。

如果你是一个 包作者 并且希望自己的资源包被安装到自定义的目录中,简单的 require composer/installers 依赖,并设置适当的 type 属性。这是常见的方式,如果你的资源包专门用于一个框架,如 CakePHP、Drupal 或 WordPress。这是一个 WordPress 主题的 composer.json 文件的例子:

{
    "name": "you/themename",
    "type": "wordpress-theme",
    "require": {
        "composer/installers": "~1.0"
    }
}

现在当你用 Composer 安装这个主题时,它就会被放置在 wp-content/themes/themename/ 目录。目前已被支持的 type 类型请查看 current supported types

对于一个 包使用者 你可以为一个包设置或覆盖安装路径,requires composer/installers 并在 extra 下设置 installer-paths 属性。Drupal 的多站点设置就是一个很好的例子,其中的资源包应该被安装到各自网站的子目录。在这里我们使用 composer/installers 来覆盖安装路径:

{
    "extra": {
        "installer-paths": {
            "sites/example.com/modules/{$name}": ["vendor/package"]
        }
    }
}

现在该资源包将被安装到你指定的目录,并替换 $name 变量,而不是默认目录。

注意: 你不能通过它改变所有包的安装目录。这仅适用于引入 composer/installers 依赖,自定义了 type 属性的资源包。

目录

Composer 中文文档

Composer 简介
Composer 基本用法
Composer 库(资源包)
Composer 命令行
Composer 架构
Composer 资源库

Composer 相关文章

Composer 使用别名
Composer 自定义安装程序
Composer 插件
Composer 脚本
Composer Vendor Binaries
Composer PHP依赖管理的新时代

Composer 常见问题

如何为我的框架自定义一个资源包安装目录?
我应该提交 vendor 目录中的依赖包吗?
为什么说“比较符”和“通配符”相结合的版本约束是坏主意?
为什么 Composer 不递归加载储存库?

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }