yfix/packager

Packager是一个PHP 5.2+库,可以将分割成多个文件的库合并为一个文件。它自动计算依赖关系。Packager要求每个文件使用yml头语法,并包含一个package.yml清单文件,如MooTools项目所示。

dev-master 2014-12-02 13:35 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:35 UTC


README

Packager是一个PHP 5.2+库,可以将分割成多个文件的库合并为一个文件。它自动计算依赖关系。Packager要求每个文件使用yml头语法,并包含一个package.yml清单文件,如MooTools项目所示。

Packager API

构造函数

此类的构造函数接受一个包的路径或一个包路径列表。不得在路径中包含package.yml

示例

$pkg = new Packager("/Users/kamicane/Sites/mootools-core/");
$pkg = new Packager(array("/Users/kamicane/Sites/mootools-core/", "/Users/kamicane/Sites/mootools-more/"));

添加清单

  • parse_manifest:为此实例添加清单

处理文件

获取器

  • get_all_files:获取所有文件列表
  • get_file_dependancies:获取此文件依赖的所有文件顺序列表
  • get_file_path:获取文件路径
  • get_file_source:获取文件源
  • get_file_description:获取文件描述
  • get_file_provides:获取文件提供的组件列表

转换器

  • complete_file:将单个文件转换为文件顺序列表
  • complete_files:将文件列表转换为文件顺序列表

生成器

  • build_from_files:返回包含所选文件及其依赖项源代码的字符串
  • write_from_files:将包含所选文件及其依赖项的文件写入

处理组件

转换为文件

  • component_to_file:获取提供此组件的文件名
  • components_to_files:将组件列表转换为文件列表

生成器

  • build_from_components:返回包含所选组件及其依赖项源代码的字符串
  • write_from_components:将包含所选组件及其依赖项的文件写入

类使用

语法

$pkg = new Packager(`$path_to_manifest`);

示例

$pkg = new Packager("/Users/kamicane/Sites/mootools-core/");

$pkg->write_from_components("/Users/kamicane/Sites/mootools.js", array('Type', 'Array'));

Packager命令行脚本

Packager命令行脚本是一站式解决方案,可以一次性构建任何包。在Unix系统上运行。

语法

./packager COMMAND +option1 argument1 argument2 +option2 argument1 argument2
  • COMMAND:packager命令(必需)
  • +option:命令选项(可选)

命令

  • register:注册一个包。在您的家目录中创建一个.packages.yml文件。
  • unregister:注销一个包
  • list:列出已注册的包
  • build:使用提供的包/文件/组件构建单个文件

注册包

示例

./packager register /Users/kamicane/mootools-core
» the package Core has been registered

列出包

示例

./packager list
» Core: /Users/kamicane/mootools-core

注销包

示例

./packager unregister Core
» the package Core has been unregistered

构建包

示例

./packager build Core/Type Core/Fx ART/ART.Element

等同于...

./packager build +components Core/Type Core/Fx ART/ART.Element

此命令使用您的已注册包构建传递的组件(及其依赖项)。

./packager build +files Core/Core Core/Fx ART/ART

此命令使用您的已注册包构建传递的文件(及其依赖项)。

./packager build ART/*

使用您的已注册包构建来自ART的所有组件及其依赖项。

./packager build SomePackage/SomeComponent +packages /Users/kamicane/Sites/some-package

使用您的已注册包和位于/Users/kamicane/Sites/some-package的临时包构建所选组件,无需先注册。

./packager build SomePackage/SomeComponent -packages Core

使用您传递给 -packages 的包名称以外的您的已注册包构建所选组件。这允许您在不依赖的情况下构建组件。

./packager build ART/SomeComponent +use-only ART

仅使用您的已注册包的ART构建所选组件。这允许您在不依赖的情况下构建组件。

./packager build SomePackage/SomeComponent +use-only +packages /Users/kamicane/Sites/some-package

使用您注册的所有软件包之外的任何软件包以及传入的软件包来构建选定的组件,而不注册它。这使您可以在没有任何依赖的情况下构建组件。

./packager build +components ART/ART +files ART/ART.Base

您可以混合组件和文件

./packager build Core/* > mootools.js

这是如何将输出写入文件的方法