WordPress/wp-includes/html-api/class-wp-html-text-replacement.php
dmsnell 51afccc65f HTML API: Add PHP type annotations.
This patch adds type annotations to internal and private methods of the HTML
API and the supporting WP_Token_Map. Annotations have not been added to the
public interfaces where it would likely crash a site if called wrong.

These annotations should help avoid unnecessary type-related bugs (as have
been uncovered in earlier work adding such annotations) and provide additional
guidance to developers when interacting with these classes in an IDE.

Developed in https://github.com/WordPress/wordpress-develop/pull/6753
Discussed in https://core.trac.wordpress.org/ticket/61399

Props dmsnell, jonsurrell.
See #61399.

Built from https://develop.svn.wordpress.org/trunk@58769


git-svn-id: http://core.svn.wordpress.org/trunk@58171 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-07-19 23:44:16 +00:00

65 lines
1.4 KiB
PHP

<?php
/**
* HTML API: WP_HTML_Text_Replacement class
*
* @package WordPress
* @subpackage HTML-API
* @since 6.2.0
*/
/**
* Core class used by the HTML tag processor as a data structure for replacing
* existing content from start to end, allowing to drastically improve performance.
*
* This class is for internal usage of the WP_HTML_Tag_Processor class.
*
* @access private
* @since 6.2.0
* @since 6.5.0 Replace `end` with `length` to more closely match `substr()`.
*
* @see WP_HTML_Tag_Processor
*/
class WP_HTML_Text_Replacement {
/**
* Byte offset into document where replacement span begins.
*
* @since 6.2.0
*
* @var int
*/
public $start;
/**
* Byte length of span being replaced.
*
* @since 6.5.0
*
* @var int
*/
public $length;
/**
* Span of text to insert in document to replace existing content from start to end.
*
* @since 6.2.0
*
* @var string
*/
public $text;
/**
* Constructor.
*
* @since 6.2.0
*
* @param int $start Byte offset into document where replacement span begins.
* @param int $length Byte length of span in document being replaced.
* @param string $text Span of text to insert in document to replace existing content from start to end.
*/
public function __construct( int $start, int $length, string $text ) {
$this->start = $start;
$this->length = $length;
$this->text = $text;
}
}