定制 wearerequired/h2push 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wearerequired/h2push

Composer 安装命令:

composer require wearerequired/h2push

包简介

Sends Link headers to bring HTTP/2 Server Push for scripts and styles to WordPress.

README 文档

README

PHPUnit Tests Coding Standards

Sends Link headers to bring HTTP/2 Server Push for scripts and styles to WordPress. Falls back to <link> element if headers are already sent.
Provides filters to customize and extend the resources to push.

Screenshot

Installation

Install the latest version with

composer require wearerequired/h2push

The plugin requires at least PHP 7.4 and WordPress 5.6.

Hooks reference

h2push.as_header

By default the plugin will use the Link header if no headers are sent yet and falls back to the <link> element. To change this behavior you can use the h2push.as_header filter. Example:

// Force H2 Push to always use the `<link>` element.
add_filter( 'h2push.as_header', '__return_false' );

This filter is also useful if the server doesn't support HTTP/2 yet and you still want to benefit from preloading.

h2push.push_resources

By default the plugin collects all enqueued scripts and styles which are have been registered before or at the wp_enqueue_scripts hook. The h2push.push_resources filters allows to customize the list of resources. Example:

/**
 * Add web font and hero image to the list of resources to push/preload.
 *
 * @param array $resources List of resources.
 * @return array List of resources.
 */
function my_theme_push_resources( array $resources ): array {
	$relative_template_directory_uri = wp_parse_url( get_template_directory_uri(), PHP_URL_PATH );

	// Push web font.
	$resources[] = [
		'href' => $relative_template_directory_uri . '/assets/fonts/fancy.woff2',
		'as'   => 'font',
		'type' => 'font/woff2',
		'crossorigin',
	];

	if ( is_front_page() && ! is_paged() ) {
		// Push hero image.
		$resources[] = [
			'href' => $relative_template_directory_uri . '/assets/images/hero.webp',
			'as'   => 'image',
			'type' => 'image/webp',
		];
	}

	return $resources;
}
add_filter( 'h2push.push_resources', 'my_theme_push_resources' );

h2push.is_allowed_push_host

By default the plugin only sends push requests for local resources where the asset URL matches the home URL. To change this behavior you can use the h2push.is_allowed_push_host filter. Example:

/**
 * Allow resources from example.org to be pushed/preloaded too.
 *
 * @param bool   $is_allowed Whether the host should be allowed. Default true for local resources.
 * @param string $host       The host name of the resource.
 * @return bool Whether the host should be allowed.
 */
function my_theme_is_allowed_push_host( $is_allowed, $host ) {
	return $is_allowed || 'example.org' === $host;
}
add_filter( 'h2push.is_allowed_push_host', 'my_theme_is_allowed_push_host' );

wearerequired/h2push 适用场景与选型建议

wearerequired/h2push 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 16.32k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2017 年 12 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「wordpress」 「http2」 「server-push」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 wearerequired/h2push 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 wearerequired/h2push 我们能提供哪些服务?
定制开发 / 二次开发

基于 wearerequired/h2push 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 16.32k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2017-12-08