定制 vbuck/magento-module-bundler 二次开发

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

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

vbuck/magento-module-bundler

最新稳定版本:1.4.0

Composer 安装命令:

composer require vbuck/magento-module-bundler

包简介

Module bundling utility. Bundles Magento modules from Composer vendor spaces into ZIP artifacts.

README 文档

README

Bundles Magento modules from Composer vendor spaces into ZIP artifacts.

In some cases, a module must be installed using the app/code space, even though it is only configured for Composer based installation. This utility helps to bundle one or more Composer packages into a single ZIP archive.

Use Cases

  • Offering multiple options for installation without manual packaging effort.
  • Creating bundles of modules from one or more Composer packages for distribution.

This tool was built to support automated bundling of multiple Composer packages from a meta-package.

Installation

Works as a Composer package to load with your project:

composer config repositories.magento-module-bundler vcs https://github.com/vbuck/magento-module-bundler.git
composer require vbuck/magento-module-bundler:*

Or you can download the standalone CLI tool:

wget https://raw.githubusercontent.com/vbuck/magento-module-bundler/main/bin/module-bundler
chmod +x module-bundler
sudo mv module-bundler /usr/local/bin/

How to Use

Example scenario:

  1. I need to install a module into app/code but it only installs via Composer.
  2. To perform this action, I first need use Composer to download the package.
  3. I must then copy its content into the app/code space using the correct vendor and module name as a path.
  4. I must then remove the original copy from the vendor space, and optionally clean my Composer files.
  5. I can optionally bundle the moved contents into a ZIP archive for distribution.

I want to automate this process using a single command.

Code Sample

$instance = new \Vbuck\MagentoModuleBundler\Bundler('/path/to/magento/root');
$result = $instance->bundle(
    [
        'vendor/package1',
        'vendor/package2',
        '/path/to/other/package',
        'package-*',
    ],
    '/path/to/output',
    \Vbuck\MagentoModuleBundler\Bundler::BEHAVIOR_INDIVIDUAL_BUNDLES, // or BEHAVIOR_SINGLE_BUNDLE
    \Vbuck\MagentoModuleBundler\Bundler::OUTPUT_TYPE_MAGENTO // or OUTPUT_TYPE_COMPOSER
);

if ($result[0]->state === true) {
 echo "Module {$result[0]->name} has been bundled"; 
}

Command-Line Usage

bin/module-bundler --app-root=/path/to/magento \
    --package=/path/to/magento/root \
    --package=vendor/package1 \
    --package=/path/to/other/package \
    --package=package-*
    --single-bundle
    --output-path=/path/to/bundles

Options:
    --app-root[=PATH]       Optional path to a Magento installation. Defaults to current working directory.
    --output-path[=PATH]    Optional path to write your bundles. Defaults to current working directory.
    --package[=SEARCH]      A search string for a package. Can be absolute, relative, package name, wildcard.
    --single-bundle         Optional flag to bundle all matching packages into a single artifact.
    --composer-artifact     Optional flag to output the bundle as a Composer artifact instead of a Magento bundle.

Architectural Principles

  • Simple: low complexity, few dependencies, "gistable" deployment
  • Flexible: can use in a project or as a standalone utility

统计信息

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

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-03-13