fostam/pharizer

从PHP项目文件结构创建phar文件/可执行文件

v1.1.0 2020-09-10 18:44 UTC

This package is auto-updated.

Last update: 2024-09-11 03:47:50 UTC


README

从PHP项目文件结构创建 phar 文件/可执行文件。

功能

  • 易于集成到构建链中
  • 支持每个项目多个phar文件
  • 扩展文件过滤功能

安装

安装pharizer最简单的方法是使用 composer

$> composer require fostam/pharizer

安装后,可以从以下位置调用它

$> vendor/bin/pharizer

配置文件

配置文件指定应构建的PHAR,并使用YAML格式。通常,它位于项目文件结构的顶层。默认名称是pharizer.yaml

示例 pharizer.yaml

target-directory: dist
targets:
  myphar:
    source-directory: .
    stub-file: src/myphar.php
    filters:
      - include: ^(src|vendor)/
      - exclude: .*
 
  another.phar:
    source-directory: .
    stub-file: src/another.php
    filters:
      - include: ^(src|vendor)/
      - exclude: .*

主要键

  • target-directory (可选):如果所有目标都应该放置在公共目录下,例如dist,则可以在此处指定。默认为当前目录(.)。
  • targets:目标列表。目标名称可以有(但不一定需要).phar扩展名。它还可以包含一个路径。例如:dist/myphar.pharmyphar)。

目标键

  • source-directory (可选):用于收集文件的基目录。默认为当前目录(.)。
  • stub-file:当执行或包含phar时调用的“入口点”文件。位置必须相对于source-directory
  • filters:可以使用过滤模式来控制哪些文件包含在PHAR中,哪些不包含。有关更多详细信息,请参阅“过滤器”。
  • shebang (可选):用于stub文件的shebang行。默认为#!/usr/bin/env php
  • exclude-pharizer (可选):如果设置为true,则自动排除所有pharizer文件(如果pharizer已通过composer为当前项目安装)。默认为true

命令

构建

使用构建命令,构建pharizer.yaml中的所有目标

$> pharizer build

要构建单个目标,请将目标名称附加到pharizer.yaml中定义的目标名称之后

$> pharizer build myphar.phar

列出文件

build命令类似,list-files命令处理配置文件中的所有或特定目标。该命令列出匹配目标过滤器的所有文件,可用于测试和尝试过滤器。

过滤器

定义

过滤器定义为包括和排除正则表达式(PCRE)模式的列表。默认情况下,正则表达式没有锚点,即如果您想将它们锚定到文件路径的开始或结束,您必须使用^$

分隔符转义由内部处理,因此不需要转义斜杠字符(/)。

模式与source-directory下每个文件的完整文件路径匹配。源路径本身(包括开头的斜杠)被截断。

示例:源目录/my/app中的文件/my/app/src/file.php在应用过滤器模式后将成为src/file.php

处理

对于目标目录中的每个文件,模式将按照在目标过滤器列表中给出的顺序进行处理。第一个匹配的模式将决定文件是包含还是排除。如果没有模式匹配,则默认包含文件。如果您想将默认行为更改为排除,只需将 exclude: ".*" 作为最后一个过滤器添加。

注意事项

YAML 转义

YAML 不允许像 * 这样的字符,因此当给出包含星号的模式时,请将其放在单引号中。避免使用双引号,因为它们与反斜杠转义不兼容。

- exclude: '.*\.php'

锚点

尝试使用 ^$/ 锚定模式,以避免意外的匹配。

示例

lib/file.php
lib/file2.php
other/glibc.c

模式 include: src 不仅会匹配 src 目录中的文件,还会匹配 glibc.c 中的 "src" 部分。可以通过锚定模式来避免这种情况,例如 include: ^src/

选项

配置文件

默认情况下,当前目录中的 pharizer.yaml 被用作配置文件。使用 -c 选项可以指定替代配置文件。

$> pharizer build -c ../myphar.yaml

详细程度

对于每个成功构建的目标,pharizer 将打印目标 PHAR 文件的名和大小。要关闭此功能,请使用 -q(静默)选项。

返回码

如果没有发生错误,pharizer 将以返回码 0 退出,否则以返回码 > 0 退出。