此包已被弃用且不再维护。作者建议使用 truesocialmetrics/cdn 包。

为 ZF2/ZF3/Laminas 提供的 Cdn 辅助工具

2.4.0 2021-12-31 16:46 UTC

This package is auto-updated.

Last update: 2022-02-01 12:22:07 UTC


README

版本 2.* 由 Rostislav Mykhajliw 创建 构建状态

介绍

TweeCdn 是一组视图辅助工具,用于支持因规则而进行的 CSS/js/图片链接转换。

要求

  • php >= 7
  • zendframework/zend-stdlib
  • zendframework/zend-view

特性 / 目标

  • 简单:通过在文件末尾添加 ?timestamp 标记,例如 /css/test.css?1234567
  • 通过给定的 REVISION 数字标识新的静态文件版本,例如 /css/1234/test.css
  • 基于文件 md5 哈希的构建唯一标记,例如 /css/af34c42/test.css。这允许用户只加载已更改的文件。
  • 支持多个主机名,例如 host1.com, host2.com
  • 哈希生成器

安装

主要设置

使用 composer

  1. 在您的 composer.json 中添加此项目和 Cdn

    "require": {
        "necromant2005/cdn": "*",
    }
  2. 现在运行以下命令,让 composer 下载 TweeCdn:

    $ php composer.phar update

安装后

在 "application.config.php" 文件中启用它。

```php
<?php
return array(
    'modules' => array(
        // ...
        'TweeCdn',
    ),
    // ...
);
```

高级配置

  • type - cdn 类型
  • public_dir - 公共目录路径
  • hostnames - 可用主机名列表
  • hashes - 哈希列表(file_path => hash)
  • mapping - 将特定文件路径映射到全局 CDNs:Google/NetDNA/MaxCDN

Options hostnames - 支持所有 cdn 辅助工具。

  1. 简单(默认模式)简单模式会在文件末尾添加 ?timestamp 标记

        /css/simple.css

    转换为

        /css/simple.css?1353231966

    将 jQuery 映射到 Google CDN 的配置(https://developers.google.com/speed/libraries/devguide

    <?php
    return array(
        'di' => array(
            'instance' => array(
                'TweeCdn\View\Helper\Cdn' => array(
                    'parameters' => array(
                        // simple configuration
                        'type'    => 'simple',
                        'options' => array(
                            'public_dir' => __DIR__ . '/../../../../public',
                            'mappings' => array(
                                '/js/jquery.js' => '//ajax.googleapis.ac.cn/ajax/libs/jquery/1.8.3/jquery.min.js'
                            ),
                        ),
                    ),
                ),
            ),
        ),
    );
  2. 发布发布基于辅助工具将存储在 "/RELEASE" 文件中的发布号放在第一个文件夹名之后。因此,每个发布都有一个唯一的路径。(默认情况下,"RELEASE" 文件由 远程多服务器自动化工具 - Capistrano 创建)

        /css/simple.css

    转换为

        /css/1353231966/simple.css

    配置

    <?php
    return array(
        'di' => array(
            'instance' => array(
                'TweeCdn\View\Helper\Cdn' => array(
                    'parameters' => array(
                        // simple configuration
                        'release'    => 'release',
                        'options' => array(
                            'public_dir' => __DIR__ . '/../../../../public',
                            'release' => trim(file_get_contents(__DIR__ . '/../../../../REVISION')),
                        ),
                    ),
                ),
            ),
        ),
    );
  3. 哈希哈希几乎与“发布”相同,但使用唯一的文件内容哈希。它可以在两种模式下工作

    • 动态 - 当哈希在飞行中生成时
    • 预编译 - 使用现有的哈希映射对于“预编译”模式,您可以使用脚本来生成哈希映射文件。它创建 tmp/hashes.php 文件列表。最终,它使应用程序更快,因为您通过在每次请求中跳过文件 md5 计算来减少磁盘 I/O。
    vendor/bin/hash_collector.php
    

    原始

        /css/simple.css

    转换为

        /css/72e7d8fb348a326251c37821d1b6bfe16ea69d6e/simple.css

    配置示例,包含错过 tmp/hashes.php 文件和主机名的故障恢复保护。文件将根据文件名通过 cdn-0 和 cdn-1 随机分发。

    <?php
    return array(
        'di' => array(
            'instance' => array(
                'TweeCdn\View\Helper\Cdn' => array(
                    'parameters' => array(
                        // simple configuration
                        'release'    => 'hash',
                        'options' => array(
                            'public_dir' => __DIR__ . '/../../../../public',
                            'hostnames' => array('http://cdn-0.coockieless.domain.com', 'http://cdn-1.coockieless.domain.com'),
                            'hashes' => (file_exists(__DIR__ . '/../tmp/hashes.php')) ? include __DIR__ . '/../tmp/hashes.php' : array(),
                        ),
                    ),
                ),
            ),
        ),
    );