revati/packager

Composer包构建模板

dev-master 2015-02-08 14:58 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:32 UTC


README

此包提供创建包的模板。

安装

全局安装此包以便从任何地方访问

composer global require revati/packager=dev-master

// Update path
export PATH=~/.composer/vendor/bin:$PATH

现在您可以从终端调用packager

首先,您必须初始化包。它将在~/.Packager文件夹中创建。

packager init

使用方法

开箱即用的packager没有自带任何预定义模板。因此,您必须自己定义它们。要创建模板,您有两个选项 - 从文件夹结构生成或获取模板配置文件(待办事项:如何共享生成的模板配置文件?)。

要从一个目录创建模板配置文件,请进入该目录并运行

packager template:make template-name

现在,要使用此模板,您可以运行

packager new my-awesome-package template-name

它将在my-awesome-package目录中初始化包。

请参阅简单示例以获取更多详细信息。

变量

这些变量可以在文件和目录以及文件名中使用。目前支持6个变量

  • author_name - 作者姓名(由作者命令或初始化时定义)
  • author_email - 作者邮箱(由作者命令或初始化时定义)
  • package_name - 包名(创建新命令时的第一个参数)
  • package_description - 包描述(创建包时可以作为选项传递)
  • package_class - 包名(驼峰命名法)
  • author_class - 作者姓名(驼峰命名法)

所有变量都以前后两个下划线为前缀和后缀(这就是为什么它们是粗体的)。

待办事项

  • 找出一种方法来共享模板配置文件。
    • 使用template:share template-name命令将模板配置文件上传到某处?
  • 在包初始化后运行一些自定义脚本(git init, composer install...)的能力
  • 在每个模板预定义的自定义子目录中初始化包的能力。
    • 从项目根运行包初始化,但在./packages目录下创建包。
  • 从配置文件创建原始模板的能力,用于模板编辑目的。
  • 将Composer包拉取到主包中,而不是在vendor目录中,用于编辑目的。

简单示例

创建新目录。在其中创建新的composer.json文件。

{
  "name": "__author_name__/__package_name__",
  "description": "__package_description__",
  "authors": [
    {
      "name": "__author_name__",
      "email": "__author_email__"
    }
  ],
  "autoload": {
    "psr-4": {
      "__author_class__\\__package_class__\\": "src/"
    }
  },
}

让我们创建src目录,并在其中创建一个__package_class__Class.php文件,其内容如下。

<?php namespace __author_class__\__package_class__;

class __package_class__Class extends SomeClass {

    // Code
}

现在模板完成,让我们创建它的配置文件。

packager template:make simple-template

模板已就绪。要使用它,请运行

packager new simple-package simple-template

它将创建simple-package目录。它将包含以下内容的composer.json文件

{
  "name": "revati/simple-package",
  "description": "",
  "authors": [
    {
      "name": "revati",
      "email": "email@email.com"
    }
  ],
  "autoload": {
    "psr-4": {
      "Revati\\SimplePackage\\": "src/"
    }
  }
}

还将有一个src文件夹,其中包含SimplePackageClass.php文件。其内容如下

<?php namespace Revati\SimplePackage;

class SimplePackageClass extends SomeClass {

    // Code
}

希望这个例子能帮到您。在变量部分您可以找到所有可用的变量。