phine/compact

该包已被弃用,不再维护。未建议替代包。

一个用于压缩文件内容的PHP库。

1.1.0 2014-01-07 00:32 UTC

This package is not auto-updated.

Last update: 2021-12-07 01:40:56 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads

一个用于压缩文件内容的PHP库。

要求

安装

通过 Composer

$ composer require "phine/compact=~1.0"

用法

Compact库提供了一种一致的方式来压缩文件及其内容。库的目的是简单地减小内容的大小,而不影响其使用方式。例如,压缩JSON文件将涉及删除用于“美化打印”的任何多余空格。

use Phine\Compact\Json;

$compactor = new Json();

echo $compactor->compactFile('example.json');

// which is also the same as

echo $compactor->compactContents(file_get_contents('example.json'));

假设我们有以下内容在 example.json

{
    "name": 123
}

内容将压缩为

{"name":123}

捆绑压缩器

该库还包括以下压缩器类

  • Phine\Compact\Json — 用于压缩JSON文件。
  • Phine\Compact\Php — 用于压缩PHP文件。
  • Phine\Compact\Xml — 用于压缩XML文件。

创建压缩器

库包括一个接口,所有捆绑类都实现了这个接口。还包含了一个抽象类,所有捆绑压缩器类都扩展了这个抽象类。当你创建自己的压缩器类时,你将想要扩展Phine\Compact\AbstractCompact类。

use Phine\Compact\AbstractCompact;

/**
 * Simply trims all lines.
 */
class Trim extends AbstractCompact
{
    /**
     * {@inheritDoc}
     */
    public function compactContents($contents)
    {
        $contents = preg_replace('/^\s+/m', '', $contents);
        $contents = preg_replace('/\s+$/m', '', $contents);

        return $contents;
    }
}

在扩展AbstractCompact类时,compactFile()方法已经为你实现。它将依赖于在从文件中读取内容后,使用compactContents()方法来压缩内容。

请考虑将你的压缩器类添加到wiki

集合

如果你需要管理多个压缩器,库提供了一个Collection类。除了类,还提供了一个接口,以便支持不同的实现。

use Phine\Compact\Collection;
use Phine\Compact\Json;
use Phine\Compact\Php;
use Phine\Compact\Xml;

$collection = new Collection();
$collection->addCompactor(new Json());
$collection->addCompactor(new Php());
$collection->addCompactor(new Xml());

$json = <<<JSON
{
    "key": "value"
}
JSON;

echo $collection->getCompactor('json')->compactContents($json);
// {"key":"value"}

文档

你可以在这里找到API文档。

许可证

此库可在MIT许可证下获得。