1
0
mirror of https://github.com/php/php-src.git synced 2026-03-30 04:02:19 +02:00
Files
archived-php-src/ext/intl/breakiterator/breakiterator.stub.php
Nikita Popov ff19ec2df3 Introduce InternalIterator
Userland classes that implement Traversable must do so either
through Iterator or IteratorAggregate. The same requirement does
not exist for internal classes: They can implement the internal
get_iterator mechanism, without exposing either the Iterator or
IteratorAggregate APIs. This makes them usable in get_iterator(),
but incompatible with any Iterator based APIs.

A lot of internal classes do this, because exposing the userland
APIs is simply a lot of work. This patch alleviates this issue by
providing a generic InternalIterator class, which acts as an
adapater between get_iterator and Iterator, and can be easily
used by many internal classes. At the same time, we extend the
requirement that Traversable implies Iterator or IteratorAggregate
to internal classes as well.

Closes GH-5216.
2020-06-24 15:31:41 +02:00

100 lines
2.5 KiB
PHP

<?php
/** @generate-function-entries */
class IntlBreakIterator implements IteratorAggregate
{
/** @return IntlBreakIterator|null */
public static function createCharacterInstance(?string $locale = null) {}
/** @return IntlCodePointBreakIterator */
public static function createCodePointInstance() {}
/** @return IntlBreakIterator|null */
public static function createLineInstance(?string $locale = null) {}
/** @return IntlBreakIterator|null */
public static function createSentenceInstance(?string $locale = null) {}
/** @return IntlBreakIterator|null */
public static function createTitleInstance(?string $locale = null) {}
/** @return IntlBreakIterator|null */
public static function createWordInstance(?string $locale = null) {}
private function __construct() {}
/** @return int */
public function current() {}
/** @return int */
public function first() {}
/** @return int|false */
public function following(int $offset) {}
/** @return int */
public function getErrorCode() {}
/** @return string|false */
public function getErrorMessage() {}
/** @return string */
public function getLocale(int $locale_type) {}
/** @return IntlPartsIterator|false */
public function getPartsIterator(string $key_type = IntlPartsIterator::KEY_SEQUENTIAL) {}
/** @return string|null */
public function getText() {}
/** @return bool */
public function isBoundary(int $offset) {}
/** @return int */
public function last() {}
/** @return int|false */
public function next(?int $offset = null) {}
/** @return int|false */
public function preceding(int $offset) {}
/** @return int */
public function previous() {}
/** @return bool|null */
public function setText(string $text) {}
public function getIterator(): Iterator {}
}
class IntlRuleBasedBreakIterator extends IntlBreakIterator
{
public function __construct(string $rules, bool $areCompiled = false) {}
/** @return string|false */
public function getBinaryRules() {}
/** @return string|false */
public function getRules() {}
/** @return int */
public function getRuleStatus() {}
/** @return array|false */
public function getRuleStatusVec() {}
}
class IntlPartsIterator extends IntlIterator
{
/** @return IntlBreakIterator */
public function getBreakIterator() {}
}
class IntlCodePointBreakIterator extends IntlBreakIterator
{
/** @return int */
public function getLastCodePoint() {}
}