Skip to content

Commit 51feaad

Browse files
committed
Add link collection to context
1 parent f7da494 commit 51feaad

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

plugins/optimization-detective/class-od-template-optimization-context.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
* @property-read array<string, mixed> $normalized_query_vars Normalized query vars.
2424
* @property-read non-empty-string $url_metrics_slug Slug for the od_url_metrics post.
2525
* @property-read non-empty-string $current_etag Current ETag.
26+
* @property-read OD_Link_Collection $link_collection Link collection.
2627
*/
2728
final class OD_Template_Optimization_Context {
2829

@@ -76,6 +77,14 @@ final class OD_Template_Optimization_Context {
7677
*/
7778
private $current_etag;
7879

80+
/**
81+
* Link collection.
82+
*
83+
* @since n.e.x.t
84+
* @var OD_Link_Collection
85+
*/
86+
private $link_collection;
87+
7988
/**
8089
* Constructor.
8190
*
@@ -87,14 +96,16 @@ final class OD_Template_Optimization_Context {
8796
* @param array<string, mixed> $normalized_query_vars Normalized query vars.
8897
* @param non-empty-string $url_metrics_slug Slug for the od_url_metrics post.
8998
* @param non-empty-string $current_etag Current ETag.
99+
* @param OD_Link_Collection $link_collection Link collection.
90100
*/
91-
public function __construct( OD_URL_Metric_Group_Collection $url_metric_group_collection, OD_Tag_Visitor_Registry $tag_visitor_registry, ?int $url_metrics_id, array $normalized_query_vars, string $url_metrics_slug, string $current_etag ) {
101+
public function __construct( OD_URL_Metric_Group_Collection $url_metric_group_collection, OD_Tag_Visitor_Registry $tag_visitor_registry, ?int $url_metrics_id, array $normalized_query_vars, string $url_metrics_slug, string $current_etag, OD_Link_Collection $link_collection ) {
92102
$this->url_metric_group_collection = $url_metric_group_collection;
93103
$this->tag_visitor_registry = $tag_visitor_registry;
94104
$this->url_metrics_id = $url_metrics_id;
95105
$this->normalized_query_vars = $normalized_query_vars;
96106
$this->url_metrics_slug = $url_metrics_slug;
97107
$this->current_etag = $current_etag;
108+
$this->link_collection = $link_collection;
98109
}
99110

100111
/**
@@ -121,6 +132,8 @@ public function __get( string $name ) {
121132
return $this->url_metrics_slug;
122133
case 'current_etag':
123134
return $this->current_etag;
135+
case 'link_collection':
136+
return $this->link_collection;
124137
default:
125138
throw new Error(
126139
esc_html(

plugins/optimization-detective/optimization.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ function od_add_template_output_buffer_filter( $template ) {
163163
od_get_url_metrics_breakpoint_sample_size(),
164164
od_get_url_metric_freshness_ttl()
165165
);
166+
$link_collection = new OD_Link_Collection();
166167

167168
/**
168169
* Fires when Optimization Detective is initialized to optimize the current response.
@@ -179,15 +180,17 @@ function od_add_template_output_buffer_filter( $template ) {
179180
$post_id,
180181
$query_vars,
181182
$slug,
182-
$current_etag
183+
$current_etag,
184+
$link_collection
183185
)
184186
);
185187

186-
$callback = static function ( string $buffer ) use ( $tag_visitor_registry, $group_collection, $slug, $post_id ): string {
188+
$callback = static function ( string $buffer ) use ( $tag_visitor_registry, $group_collection, $link_collection, $slug, $post_id ): string {
187189
return od_optimize_template_output_buffer(
188190
$buffer,
189191
$tag_visitor_registry,
190192
$group_collection,
193+
$link_collection,
191194
$slug,
192195
$post_id
193196
);
@@ -304,11 +307,12 @@ function od_is_response_html_content_type(): bool {
304307
* @param string $buffer Template output buffer.
305308
* @param OD_Tag_Visitor_Registry $tag_visitor_registry Tag visitor registry.
306309
* @param OD_URL_Metric_Group_Collection $group_collection URL Metric group collection.
310+
* @param OD_Link_Collection $link_collection Link collection.
307311
* @param non-empty-string $slug Slug.
308312
* @param positive-int|null $post_id The ID for the od_url_metric post if it exists.
309313
* @return string Filtered template output buffer.
310314
*/
311-
function od_optimize_template_output_buffer( string $buffer, OD_Tag_Visitor_Registry $tag_visitor_registry, OD_URL_Metric_Group_Collection $group_collection, string $slug, ?int $post_id ): string {
315+
function od_optimize_template_output_buffer( string $buffer, OD_Tag_Visitor_Registry $tag_visitor_registry, OD_URL_Metric_Group_Collection $group_collection, OD_Link_Collection $link_collection, string $slug, ?int $post_id ): string {
312316

313317
// If the content-type is not HTML or the output does not start with '<', then abort since the buffer is definitely not HTML.
314318
if (
@@ -328,7 +332,6 @@ function od_optimize_template_output_buffer( string $buffer, OD_Tag_Visitor_Regi
328332
return $buffer;
329333
}
330334

331-
$link_collection = new OD_Link_Collection();
332335
$visited_tag_state = new OD_Visited_Tag_State();
333336
$tag_visitor_context = new OD_Tag_Visitor_Context(
334337
$processor,

0 commit comments

Comments
 (0)