WordPress/wp-includes/html-api/class-wp-html-span.php
zieladam 760fae6c43 HTML API: Track spans of text with (offset, length) instead of (start, end).
Updates the internal representation of the text span coordinates. The mixture of (offset, length) and (start, end) coordinates becomes confusing, this commit replaces it with a (offset, length) pair. There should be no functional or behavioral changes in this patch. For the internal helper classes this patch introduces breaking changes, but those classes are marked private and should not be used outside of the HTML API itself.

Props dmsnell.
Fixes #59993.


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


git-svn-id: http://core.svn.wordpress.org/trunk@56690 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-12-10 13:19:28 +00:00

57 lines
1.1 KiB
PHP

<?php
/**
* HTML API: WP_HTML_Span class
*
* @package WordPress
* @subpackage HTML-API
* @since 6.2.0
*/
/**
* Core class used by the HTML tag processor to represent a textual span
* inside an HTML document.
*
* This is a two-tuple in disguise, used to avoid the memory overhead
* involved in using an array for the same purpose.
*
* This class is for internal usage of the WP_HTML_Tag_Processor class.
*
* @access private
* @since 6.2.0
* @since 6.5.0 Replaced `end` with `length` to more closely align with `substr()`.
*
* @see WP_HTML_Tag_Processor
*/
class WP_HTML_Span {
/**
* Byte offset into document where span begins.
*
* @since 6.2.0
*
* @var int
*/
public $start;
/**
* Byte length of this span.
*
* @since 6.5.0
*
* @var int
*/
public $length;
/**
* Constructor.
*
* @since 6.2.0
*
* @param int $start Byte offset into document where replacement span begins.
* @param int $length Byte length of span.
*/
public function __construct( $start, $length ) {
$this->start = $start;
$this->length = $length;
}
}