Hacklang项目的构建自动化工具

0.0.1 2016-05-04 05:32 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:36:58 UTC


README

Ken是Hacklang的项目自动化工具,也可以用作通用构建工具。

Ken的存在是因为Bob,一个优秀的PHP工具,Ken基于它。我没有进行分支操作,因为项目变化太大。

工作原理

Ken不使用XML/JSON作为任务文件。相反,任务通过使用TaskLibraryInterface或配置文件与PHP语言本身注册。

Application是开发人员用于注册任务文件或库的核心对象。

任务由TaskFactory创建。

入门指南

如果没有指定,默认配置文件将从ken_config.php加载

如果ken_tasks文件夹存在,则该文件夹中的所有文件都视为配置文件。

运行时需要配置文件,并使用2个函数

  • task(name, dependencies, action) - 注册一个新任务 ..+ task(name, dependencies) ..+task(name, action) ..+task(action)
  • desc(text) - 为下一个定义的任务提供描述

配置文件还有一个全局的Application实例,可以在任务闭包外访问,内部称为action

desc('Concat clientside code');
task('concat', function(Application $app) {
	// concat files
});

desc('Minify clientside code');
task('minify', function(Application $app) {
	// minify files
});

task('default', ['concat', 'minify'])

为了提供更好的OOA方法,您可以使用TaskLibraryInterface定义任务。

库通过在Application中注册

register(TaskLibraryInterface $taskLib, array $parameters = array())

创建新库时必须实现TaskLibraryInterface。例如,请检查ComposerLibrary,它管理composer包。

客户端接口

ClientInterface表示开发人员使用Ken库的入口点。

目前有两个针对ClientInterface的实现

  • Cli:用于与HHVM客户端一起使用的CLI实现
  • Host:用于在另一个框架或现有项目中使用的实现(您可以从代码内部轻松执行任务)

虽然CLI用于从命令行直接执行任务,但Host用于在代码内部消费。

Cli和Host都会初始化客户端依赖项,创建一个新的Application,然后调用run方法。

Cli

CLI非常直接,您可以通过bin/ken访问它。

当调用run方法时,CLI执行任务。

Host

Host客户端必须在应用程序启动时运行,在执行任何对Ken的消费之前。要执行任务,开发人员调用task方法。

安装

先决条件

Ken至少需要hhvm 3.8才能运行。

Composer

guilhermegeek/ken包添加到Composer的require-dev部分

{
	"require-dev": {
		"guilhermegeek/ken": "master"
	}
}

然后运行 composer install -dev

你可以使用以下命令来调用ken:

hhvm bin/ken