Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1431822
TokenGenerator.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
TokenGenerator.php
View Options
<?php
namespace
Wikimedia\RemexHtml\Tokenizer
;
/**
* This class provides a convenient iterative view of the token stream,
* implemented as a Generator. It is intended to be used as follows:
*
* foreach ( TokenGenerator::generate( $html, [] ) as $token ) {
* ...
* }
*
* Performance is slightly slower than a plain TokenHandler, probably due to
* the need to convert event parameters to associative arrays.
*/
class
TokenGenerator
{
/** @var TokenGeneratorHandler */
protected
$handler
;
/** @var Tokenizer */
protected
$tokenizer
;
/**
* @param string $text
* @param array $options Options passed through to Tokenizer
*/
protected
function
__construct
(
$text
,
$options
)
{
$this
->
handler
=
new
TokenGeneratorHandler
;
$this
->
tokenizer
=
new
Tokenizer
(
$this
->
handler
,
$text
,
$options
);
}
/**
* Get a Generator which iterates over all tokens in the supplied HTML
*
* @param string $text The HTML
* @param array $options The Tokenizer options, see Tokenizer::__construct()
* @return \Generator
*/
public
static
function
generate
(
$text
,
$options
)
{
$tg
=
new
self
(
$text
,
$options
);
$tg
->
tokenizer
->
beginStepping
();
while
(
$tg
->
tokenizer
->
step
()
)
{
foreach
(
$tg
->
handler
->
tokens
as
$token
)
{
yield
$token
;
}
$tg
->
handler
->
tokens
=
[];
}
foreach
(
$tg
->
handler
->
tokens
as
$token
)
{
yield
$token
;
}
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 21:06 (1 d, 13 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
8f/53/76815ed346d2829d24ec5ae13cd9
Default Alt Text
TokenGenerator.php (1 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment