定制 davidbarratt/custom-installer 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

davidbarratt/custom-installer

最新稳定版本:1.1.0

Composer 安装命令:

composer require davidbarratt/custom-installer

包简介

Install custom types into custom locations.

README 文档

README

Build Status

Adds a root-level custom type installer path to composer.json. Any custom type can be used to define a path the type should be installed in.

Installation

Simply require this library in your composer.json file. Typically this will be added as a dependency of the custom type to ensure that the library is loaded before the library that needs it. However, this can be added to the root composer.json, as long as it goes before any library that needs it.

{
    "require": {
        "davidbarratt/custom-installer": "1.0.*@dev"
    }
}

Usage

The added parameter(s) are only allowed on the root to avoid conflicts between multiple libraries. This also prevents a project owner from having a directory accidentally wiped out by a library. Note: Each package will go in it’s respective folder in the order in which they are installed.

The configuration has to be added in custom-installer of composer.json's extra section. It is similar to Composer installer's installation paths.

Pattern syntax

The key of the the configuration array is the path pattern. You can use some replacement tokens:

  • {$name}: The name of the package (e.g. yaml of symfony/yaml)
  • {$vendor}: The vendor of the package (e.g. symfony of symfony/yaml)
  • {$type}: for the composer package type (e.g. library, drupal-module)

Package filters

The value of the configuration array has to be an array. It holds the package filter for the given pattern. The pattern will be applied if any filter matches.

Package type filter

With type:[package-type] you can define a pattern per package type. You can use any custom package type and are not limited to a predefined set.

Composer specific package types metapackage or composer-plugin will never be handled by Custom Installer.

Example: type:custom-library for package type custom-library

Package name filter

You can specify a pattern per full package name ([vendor]/[name]).

Custom Installer will only handle a specific package if a configuration exists that also handles the package type in general.

Examples

{
    "extra": {
        "custom-installer": {
            "web/": ["type:drupal-core"],
            "web/sites/{$name}/": ["type:drupal-site"],
            "custom/{$type}/{$vendor}/{$name}/": ["type:random-type"],
            "vendor/{$vendor}/{$name}/": ["type:library"],
            "web/sites/all/libraries/{$name}/": [
                "type:component",
                "ckeditor/ckeditor",
                "flesler/jquery.scrollto"
            ],
            "custom-folder-for-single-package": ["myvendorname/single-package"],
        }
    }
}

In the example we want to make sure CKEditor and Jquery ScrollTo will be placed in web/sites/all/libraries. Both packages are of of package type library. In order to change the path of those packages, we must declare a fallback for the package type library. It shall stay in the default vendor location (as library is the default composer package type). If you do not do that the custom installer cannot handle the single packages (ckeditor and flesler/jquery.scrollto ) due to the way composer installer plugins work.

统计信息

  • 总下载量: 2.36M
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 28
  • 点击次数: 1
  • 依赖项目数: 7
  • 推荐数: 0

GitHub 信息

  • Stars: 28
  • Watchers: 5
  • Forks: 9
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2014-09-01