raybog/magento-core-composer-installer

管理 Magento 核心的 composer 插件

安装: 475

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 37

类型:composer-plugin

1.4.0 2016-12-21 09:57 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:25:56 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Latest Stable Version Latest Unstable Version

用于管理 Magento 核心的 Composer 插件

此工具允许您使用 Composer 在项目中管理 Magento 核心。

优势

  • 将 Magento 排除在项目仓库之外
  • 允许轻松升级到新的 Magento 版本

您的项目需要此工具并且需要特定版本的 Magento。安装 Magento 软件包将触发在 Magento 根目录下的安装。将自动创建一个 .gitignore 文件,其中包含 Magento 核心软件包中的所有文件(其中一些被分组,后面会详细介绍)。

当删除软件包时,无论是使用 composer remove magento/magento 还是手动从 composer.json 文件中删除并运行 composer update,将被删除的 Magento 版本中存在的所有文件将从您的 magento-root-dir 文件夹中删除。如果这些文件夹中存在自定义文件,则不会删除这些文件。

这允许您在项目中安装和删除 Magento 核心,而无需将其提交,因为 .gitignore 将自动更新。更进一步,在项目根目录中,您可以忽略 magento-root-dir 中的 .gitignore。这意味着您可以在不显示任何未跟踪文件的情况下安装、更新和删除 Magento 核心。

现在更新 Magento 核心非常简单,只需更改您的 require 为 "magento/magento": 1.10.0 或最新版本,然后运行 composer update

兼容性

此工具与任何 PHP >= 5.3 版本的 PHP 都兼容。它使用 Travis 自动在 PHP 5.3、5.4、5.5 和 HHVM 版本上进行测试。

安装

$ cd magento-project
$ composer require aydin-hassan/magento-core-composer-installer

将安装最新稳定版本。

为了使安装程序真正执行任何操作,您还需要要求一个核心 Magento 软件包。这应该是一个在根目录中包含 composer.json 文件的 Magento 发布版。它应该像这样定义

{
    "name": "magento/magento",
    "description": "Magento Mirror",
    "type": "magento-core"
}

有关示例,请参阅这里。如果您愿意,可以使用此存储库进行您的 Magento CE 构建。

您可以创建自己的公共或私有 Magento 存储库来托管不同版本。您应该为每个版本标记版本。type 键很重要。Magento Core Composer Installer 只会安装类型为 magento-core 的软件包。

有关如何创建自己的 Magento 源代码存储库的说明,请参阅这里

要使用 Magento 软件包,您必须将其添加到项目的 composer.json 文件中

"repositories": [
    {
        "type": "vcs",
        "url": "git@github.com:AydinHassan/magento-community.git"
    }
],

然后您可以这样做

$ composer require "magento/magento:1.9.1.0"

总体而言,您的项目 composer.json 应该看起来像这样

{
    "name": "somevendor/someproject",
    "description": "Magento build for ...",
    "require-dev": {
        "phpunit/phpunit": "~4.4"
    },
    "require": {
        "aydin-hassan/magento-core-composer-installer" : "~1.0",
        "magento/magento" : "1.9.1.0"
    },
    "authors": [
        {
            "name": "Aydin Hassan",
            "email": "aydin@hotmail.co.uk"
        }
    ],
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:AydinHassan/magento-community.git"
        }
    ],
    "extra": {
        "magento-root-dir": "htdocs"
    }
}

请注意 magento-root-dir,它用于指定您希望 Magento 安装到的位置。

配置

可以在根 composer.json 文件中的 extra 键下提供 magento-core-deploy 配置

可用配置

  • excludes - 一个数组,用于在安装核心时不要复制文件,这在需要本地覆盖或您想跟踪 .htaccess 时很有用。
  • ignore-directories - 一个文件夹数组,用于将忽略项分组在一起,以使核心 .gitignore 文件更小。
  • git-ignore-append - 默认值为 true。是否向 magento-root-dir 文件夹中的 .gitignore 文件追加。如果为 false,则每次部署时都会被清除。

示例配置

{
     ...
     "extra" {
         "magento-root-dir": "htdocs",
         "magento-core-deploy" : {
            "excludes": [ 
                ".htaccess"
            ],
            "ignore-directories": [
                "lib/Zend"
            ],
            "git-ignore-append": false
         }
     }
}

上述配置将安装核心包中的所有内容,除了文件 .htaccess,它将所有位于 lib\Zend 下的文件分组到 htdocs\.gitignore 文件中。并且每次更新或删除 Magento 时都会清除 htdocs\.gitignore

排除项

使用此功能可排除某些文件和文件夹从核心复制到您的根目录。如果您包含的排除路径实际上是一个文件夹,则该文件夹内的所有内容都将被排除。

排除 lib 中的所有文件

{
     ...
     "extra" {
         "magento-root-dir": "htdocs",
         "magento-core-deploy" : {
            "excludes": [ 
                "lib"
            ]
         }
     }
}

仅排除 app/etc/local.xml

{
     ...
     "extra" {
         "magento-root-dir": "htdocs",
         "magento-core-deploy" : {
            "excludes": [ 
                "app/etc/local.xml"
            ]
         }
     }
}

忽略目录

这需要更多的解释。为 Magento 中的每个文件生成一个 .gitignore 文件会导致文件长度超过 10,000 行。经过调查,这似乎会使像 git status 这样的 git 命令变得相当慢。一些问题花费了我多达 14 秒。

为了解决这个问题,任何位于默认文件夹集的文件都不会添加到 .gitignore 中,而是只添加文件夹,这大大减小了 .gitignore 的大小。默认忽略的文件夹列表可以在这里找到:这里

如果您需要提交这些目录内的文件,则可以通过设置上面提到的 ignore-directories 键来覆盖此列表。您的列表将不会合并,而是将被使用。这是如果您想删除其中一个忽略目录的话。

创建核心包

我提供了一个脚本,允许您轻松管理 Magento 的镜像。它适用于社区和企业版。以下说明解释了如何创建核心包。

添加新 Magento 版本脚本:https://gist.github.com/AydinHassan/6ed0bf2219ea0f122402

  1. 创建存储库或克隆现有的存储库:cd && mkdir magento-mirror && git init
  2. 下载 Magento 版本并解压:cd && tar -xzf magento.tar.gz
  3. 将此脚本下载到您的家目录:cd && curl https://gist.githubusercontent.com/AydinHassan/6ed0bf2219ea0f122402/raw/28d1e629947ef4e92082914172c5000a417d87c5/add-magento-version.php -o add-magento-version.php
  4. 使用您的存储库位置和提取的 Magento 代码运行它:php add-magento-version.php ~/magento-mirror ~/magento
  5. 新版本将被提交并标记。您现在可以将它推送到远程。

脚本将根据源代码确定 Magento 的版本和版本。它将根据这些版本创建分支和标记。

分支是主.次

因此 1.9.0.01.9.0.11.9.10 都属于 1.9 分支

1.10.0.0 会导致创建一个新的 1.10 分支。

1.10 将从 1.9 分支创建,这样您就可以轻松地比较它们

运行测试

$ git clone git@github.com:AydinHassan/magento-core-composer-installer.git
$ cd magento-core-composer-installer
$ composer install
$ ./vendor/bin/phpunit