V0.5.1 2013-03-25 14:13 UTC

This package is not auto-updated.

Last update: 2024-09-28 13:30:22 UTC


README

Build Status Coverage Status

这是POC(PHP输出缓存)的根目录。

描述

本项目的目标是创建一个易于使用且非常灵活的通用缓存组件,同时也有优秀的PHP输出缓存实现。此框架基于插件,因此很容易扩展并利用其实现的功能。

特性

  • 在定义的某些情况下缓存输出

  • 通过TTL(当然)进行缓存失效

  • 通过应用程序状态进行黑名单缓存

  • 为了缓存,它利用了许多接口,包括

    • Memcached
    • Redis
    • MongoDb
    • 基于文件系统的自研引擎。
  • 插件

    • 通过输出内容进行黑名单(插件)

    • HTML输出最小化(插件)

    • 使用monolog进行日志记录(插件)

    • 重载和缓存失效攻击保护(插件)

    • 如有需要,压缩应用程序的输出(插件)

    • 基于输出存储Etag(插件)

    • 缓存标签

      • 为此特性,我们使用了Doctrine2,目前支持Mysql和Sqlite。
      • 基于标签的缓存失效
      • 对性能影响最小化
      • 易于(一行)开启/关闭
      • 控制头部信息

更多功能即将推出,请持续关注。

示例

您可以下载/查看https://github.com/flyingwhale/poc-sandbox项目并将其安装到您的web目录中(那里也需要composer的帮助:))。

安装

项目使用composer下载其依赖项,并且我们已经添加了一个脚本,您可以通过输入./bin/get_composer scrip来执行它。它会下载composer。

由于项目符合psr-0规范,将其映射到您的项目非常容易。要下载依赖项,请从项目根目录运行"./bin/get_composer"文件,或者自行下载composer.phar。然后运行"bin/composer.phar install"脚本。

如果您想运行unittests或想改进或扩展框架,请使用以下命令:"bin/composer.phar install --dev"。

键值数据库

当然,您不必强制使用任何外部键值数据库,因为它也支持文件系统缓存。但为了使您的应用程序更具可扩展性,您可以使用一些更可扩展的解决方案。

例如,您可以在环境中安装redis-server,mongod(MongoDb)或当然Memcached服务器以及PHP模块。

SQL

目前我们只支持Mysql,用于标签功能,但随着我们在Doctrine2中的实现,我们很可能在不久的将来将更多SQL数据库添加到该列表中。所以为了标签功能,请安装Mysql。

##单元测试##

项目已经达到了96%的代码覆盖率。unittests可以是一个很好的示例来源。例如,强烈建议查看PocTest.php文件以获取更多关于POC的见解。

快捷方式

项目还包含PHPUnit框架的最新版本。因此,您不需要为该环境做准备。通过执行vendor/bin/phpunit文件,您可以运行测试。

配置

所有PHPUnit配置数据都可以在phpunit.xml.dist文件中找到。MySQL数据库的具体信息也位于此处,用于测试。如果您想指定自己的数据库,只需将此文件复制到phpunit.xml并修改数据库相关的部分。

版权

版权 [2015] [Imre Toth]

根据Apache License,版本2.0(以下简称“许可证”);除非符合许可证的要求或书面同意,否则不得使用此文件。您可以在以下位置获取许可证的副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证下权限和限制的具体语言,请参阅许可证。