markjaquith/wp-tlc-transients
Composer 安装命令:
composer require markjaquith/wp-tlc-transients
包简介
A WP transients interface with support for soft-expiration, background updating of the transients.
关键字:
README 文档
README
A WordPress transients interface with support for soft-expiration (use old content until new content is available), background updating of the transients (without having to wait for a cron job), and a chainable syntax that allows for one liners.
License
TLC Transients is licensed under the GPL, version 2.0 or any later version. See LICENSE.
Examples
In this simple example, we're defining a feed-fetching callback, and then using tlc_transient with a chain to point to that callback and use it, all in one line. Note that since we haven't used background_only(), the initial load of this will cause the page to pause.
<?php // Define your callback (other examples use this) function my_callback() { return wp_remote_retrieve_body( wp_remote_get( 'http://example.com/feed.xml', array( 'timeout' => 30 ) ) ); } // Grab that feed echo tlc_transient( 'example-feed' ) ->updates_with( 'my_callback' ) ->expires_in( 300 ) ->get(); ?>
This time, we'll set background_only() in the chain. This means that if there has been a hard cache flush, or this is the first-ever request, it will return false. So your code will have to be written to gracefully degrade if the feed isn't yet available. This, of course, triggers a background update. And once it is available, it will start returning the content.
<?php echo tlc_transient( 'example-feed' ) ->updates_with( 'my_callback' ) ->expires_in( 300 ) ->background_only() ->get(); ?>
We don't have to chain, of course.
<?php $t = tlc_transient( 'example-feed' ); if ( true ) { $t->updates_with( 'my_callback' ); } else { $t->updates_with( 'some_other_callback' ); } $t->expires_in( 300 ); echo $t->get(); ?>
We can even pass parameters to our callback.
<?php // Define your callback function my_callback_with_param( $param ) { return str_replace( 'foo', $param, wp_remote_retrieve_body( wp_remote_get( 'http://example.com/feed.xml', array( 'timeout' => 30 ) ) ), ); } // Grab that feed echo tlc_transient( 'example-feed' ) ->updates_with( 'my_callback_with_param', array( 'bar' ) ) ->expires_in( 300 ) ->background_only() ->get(); ?>
Notes
Context
It should be noted that when a callback runs asynchronously, you are not in control of context. The context that existed when you registered the callback has no bearing on the context when the callback is actually run. So if there is anything that you're assuming in your callback function (whether a certain user being current, a certain post having been queried, etc), you must rewrite your calllback function so that these assumptions are not made, and instead pass in this context in the form of parameters, which your callback then uses to recreate your desired context.
markjaquith/wp-tlc-transients 适用场景与选型建议
markjaquith/wp-tlc-transients 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 79.29k 次下载、GitHub Stars 达 341, 最近一次更新时间为 2013 年 05 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cache」 「wordpress」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 markjaquith/wp-tlc-transients 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 markjaquith/wp-tlc-transients 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 markjaquith/wp-tlc-transients 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
Laravel 5 - Repositories to the database layer
Rinvex Repository is a simple, intuitive, and smart implementation of Active Repository with extremely flexible & granular caching system for Laravel, used to abstract the data layer, making applications more flexible to maintain.
Laravel 5 - Repositories to the database layer
Rinvex Cacheable is a granular, intuitive, and fluent caching system for eloquent models. Simple, but yet powerful, plug-n-play with no hassle.
Small library for obtaining RSS feed with caching.
统计信息
- 总下载量: 79.29k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 346
- 点击次数: 26
- 依赖项目数: 6
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0
- 更新时间: 2013-05-07