revati / packager
Composer包构建模板
dev-master
2015-02-08 14:58 UTC
Requires
- symfony/console: ~2.0
- symfony/filesystem: ~2.0
- symfony/finder: ~2.0
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
}
希望这个例子能帮到您。在变量部分您可以找到所有可用的变量。