飞翔鲸 / poc
Requires
- php: >=5.3.0
- doctrine/orm: >=2.2.3,>2.5-dev
- monolog/monolog: 1.*
- optionable/optionable: 0.5.*
- pimple/pimple: 1.*
- predis/predis: 0.7.3
- symfony/class-loader: 2.1.*
- symfony/console: 2.*
- symfony/event-dispatcher: 2.*
Requires (Dev)
- eher/phpunit: 1.6
- fabpot/php-cs-fixer: dev-master
This package is not auto-updated.
Last update: 2024-09-28 13:30:22 UTC
README
这是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
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证下权限和限制的具体语言,请参阅许可证。