Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds new documentation for filters #27

Merged
merged 12 commits into from
Mar 17, 2020
180 changes: 6 additions & 174 deletions docs/book/filters.md
Original file line number Diff line number Diff line change
@@ -1,174 +1,6 @@
# Filters

laminas-i18n ships with a set of internationalization-related filters.

## Alnum

The `Alnum` filter can be used to return only alphabetic characters and digits in the unicode
"letter" and "number" categories, respectively. All other characters are suppressed.

### Supported Options

The following options are supported for `Alnum`:

```php
Alnum([ boolean $allowWhiteSpace [, string $locale ]])
```

- `$allowWhiteSpace`: If set to true, whitespace characters are allowed;
otherwise they are suppressed. Default is `false` (whitespace is not allowed).
Methods for getting/setting the allowWhiteSpace option are also available
(`getAllowWhiteSpace()` and `setAllowWhiteSpace()`).
- `$locale`: The locale string used in identifying the characters to filter
(locale name, e.g. `en_US`). If unset, it will use the default locale
(`Locale::getDefault()`). Methods for getting/setting the locale are also
available (`getLocale()` and `setLocale()`).

### Basic Usage

```php
// Default settings, deny whitespace
$filter = new \Laminas\I18n\Filter\Alnum();
echo $filter->filter("This is (my) content: 123");
// Returns "Thisismycontent123"

// First param in constructor is $allowWhiteSpace
$filter = new \Laminas\I18n\Filter\Alnum(true);
echo $filter->filter("This is (my) content: 123");
// Returns "This is my content 123"
```

> ### Supported languages
>
> `Alnum` works for most languages, except Chinese, Japanese and Korean. Within
> these languages, the English alphabet is used instead of the characters from
> these languages. The language itself is detected using the `Locale` class.

## Alpha

The `Alpha` filter can be used to return only alphabetic characters in the unicode "letter"
category. All other characters are suppressed.

### Supported Options

The following options are supported for `Alpha`:

```php
Alpha([ boolean $allowWhiteSpace [, string $locale ]])
```

- `$allowWhiteSpace`: If set to true, whitespace characters are allowed;
otherwise they are suppressed. Default is `false` (whitespace is not allowed).
Methods for getting/setting the allowWhiteSpace option are also available
(`getAllowWhiteSpace()` and `setAllowWhiteSpace()`).
- `$locale`: The locale string used in identifying the characters to filter
(locale name, e.g. `en_US`). If unset, it will use the default locale
(`Locale::getDefault()`). Methods for getting/setting the locale are also
available (`getLocale()` and `setLocale()`).

### Basic Usage

```php
// Default settings, deny whitespace
$filter = new \Laminas\I18n\Filter\Alpha();
echo $filter->filter("This is (my) content: 123");
// Returns "Thisismycontent"

// Allow whitespace
$filter = new \Laminas\I18n\Filter\Alpha(true);
echo $filter->filter("This is (my) content: 123");
// Returns "This is my content "
```


> ### Supported languages
>
> `Alnum` works for most languages, except Chinese, Japanese and Korean. Within
> these languages, the English alphabet is used instead of the characters from
> these languages. The language itself is detected using the `Locale` class.

## NumberFormat

The `NumberFormat` filter can be used to return locale-specific number and
percentage strings. It extends the `NumberParse` filter, which acts as wrapper
for the `NumberFormatter` class within ext/intl.

### Supported Options

The following options are supported for `NumberFormat`:

```php
NumberFormat([ string $locale [, int $style [, int $type ]]])
```

- `$locale`: The locale string used in identifying the characters to filter
(locale name, e.g. `en_US`). If unset, it will use the default locale
(`Locale::getDefault()`). Methods for getting/setting the locale are also
available (`getLocale()` and `setLocale()`).
- `$style`: (Optional) Style of the formatting, one of the [`NumberFormatter`
format style constants](https://www.php.net/manual/class.numberformatter.php#intl.numberformatter-constants.unumberformatstyle).
If unset, it will use `NumberFormatter::DEFAULT_STYLE` as the default style.
Methods for getting/setting the format style are also available (`getStyle()`
and `setStyle()`).
- `$type`: (Optional) The [`NumberFormatter` formatting type](https://www.php.net/manual/class.numberformatter.php#intl.numberformatter-constants.types)
to use. If unset, it will use `NumberFormatter::TYPE_DOUBLE` as the default
type. Methods for getting/setting the format type are also available
(`getType()` and `setType()`).

### Basic Usage

```php
$filter = new \Laminas\I18n\Filter\NumberFormat('de_DE');
echo $filter->filter(1234567.8912346);
// Returns "1.234.567,891"

$filter = new \Laminas\I18n\Filter\NumberFormat('en_US', NumberFormatter::PERCENT);
echo $filter->filter(0.80);
// Returns "80%"

$filter = new \Laminas\I18n\Filter\NumberFormat('fr_FR', NumberFormatter::SCIENTIFIC);
echo $filter->filter(0.00123456789);
// Returns "1,23456789E-3"
```

## NumberParse

The `NumberParse` filter can be used to parse a number from a string. It acts as
a wrapper for the `NumberFormatter` class within ext/intl.

### Supported Options

The following options are supported for `NumberParse`:

```php
NumberParse([ string $locale [, int $style [, int $type ]]])
```

- `$locale`: The locale string used in identifying the characters to filter
(locale name, e.g. `en_US`). If unset, it will use the default locale
(`Locale::getDefault()`). Methods for getting/setting the locale are also
available (`getLocale()` and `setLocale()`).
- `$style`: (Optional) Style of the parsing, one of the [`NumberFormatter` format style constants](https://www.php.net/manual/class.numberformatter.php#intl.numberformatter-constants.unumberformatstyle).
If unset, it will use `NumberFormatter::DEFAULT_STYLE` as the default style.
Methods for getting/setting the parse style are also available (`getStyle()`
and `setStyle()`).
- `$type`: (Optional) The [`NumberFormatter` parsing type](https://www.php.net/manual/class.numberformatter.php#intl.numberformatter-constants.types)
to use. If unset, it will use `NumberFormatter::TYPE_DOUBLE` as the default
type. Methods for getting/setting the parse type are also available
(`getType()` and `setType()`).

### Basic Usage

```php
$filter = new \Laminas\I18n\Filter\NumberParse('de_DE');
echo $filter->filter('1.234.567,891');
// Returns 1234567.891

$filter = new \Laminas\I18n\Filter\NumberParse('en_US', NumberFormatter::PERCENT);
echo $filter->filter('80%');
// Returns 0.80

$filter = new \Laminas\I18n\Filter\NumberParse('fr_FR', NumberFormatter::SCIENTIFIC);
echo $filter->filter('1,23456789E-3');
// Returns 0.00123456789
```
<noscript><meta http-equiv="refresh" content="0; url=/laminas-i18n/filters/introduction/"></noscript>
<script>
document.addEventListener("DOMContentLoaded", function (event) {
window.location.pathname = '/laminas-i18n/filters/introduction/';
});
</script>
97 changes: 97 additions & 0 deletions docs/book/filters/alnum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Alnum

The `Alnum` filter can be used to **return only alphabetic characters and
digits** in the unicode "letter" and "number" categories, respectively. All
other characters are suppressed.

## Basic Usage

```php
$filter = new Laminas\I18n\Filter\Alnum();

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent123"
```

By default, if no locale is provided, `Alnum` will use the system locale
provided by PHP's `Locale` class and the `getDefault()` method.

## Using Whitespace

To allow whitespace characters (`\s`) on filtering set the option to `true`;
otherwise they are suppressed.

```php fct_label="Constructor Usage"
$filter = new Laminas\I18n\Filter\Alnum(true);

echo $filter->filter('This is (my) content: 123'); // "This is my content 123"
```

```php fct_label="Setter Usage"
$filter = new Laminas\I18n\Filter\Alnum();
$filter->setAllowWhiteSpace(true);

echo $filter->filter('This is (my) content: 123'); // "This is my content 123"
```

### Get Current Value

To get the current value of this option, use the `getAllowWhiteSpace()` method.

```php
$filter = new Laminas\I18n\Filter\Alnum(true);

$result = $filter->getAllowWhiteSpace(); // true
```

### Default Value

The default value of this option is `false` that means whitespace characters are
suppressed.

## Using Locale

The locale string used in identifying the characters to filter (locale name,
e.g. `en_US`).

```php fct_label="Constructor Usage"
$filter = new Laminas\I18n\Filter\Alnum(null, 'en_US');

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent123"
```

```php fct_label="Setter Usage"
$filter = new Laminas\I18n\Filter\Alnum();
$filter->setLocale('en_US');

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent123"
```

```php fct_label="Locale Class Usage"
Locale::setDefault('en_US');

$filter = new Laminas\I18n\Filter\Alnum();

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent123"
```

### Get Current Value

To get the current value of this option, use the `getLocale()` method.

```php
$filter = new Laminas\I18n\Filter\Alnum(null, 'en_US');
froschdesign marked this conversation as resolved.
Show resolved Hide resolved

echo $filter->getLocale(); // 'en_US'
```

### Default Value

By default, if no locale is provided, `Alnum` will use the system locale
provided by PHP's `Locale::getDefault()`.

## Supported Languages

`Alnum` works for most languages, except *Korean*, *Japanese*, and *Chinese*.
Within these languages, the English alphabet is used instead of the characters
from these languages. The language itself is detected using PHP's `Locale`
class.
96 changes: 96 additions & 0 deletions docs/book/filters/alpha.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Alpha

The `Alpha` filter can be used to **return only alphabetic characters** in the
unicode "letter" category. All other characters are suppressed.

## Basic Usage

```php
$filter = new Laminas\I18n\Filter\Alpha();

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent"
```

By default, if no locale is provided, `Alpha` will use the system locale
provided by PHP's `Locale` class and the `getDefault()` method.

## Using Whitespace

To allow whitespace characters (`\s`) on filtering set the option to `true`;
otherwise they are suppressed.

```php fct_label="Constructor Usage"
$filter = new Laminas\I18n\Filter\Alpha(true);

echo $filter->filter('This is (my) content: 123'); // "This is my content"
```

```php fct_label="Setter Usage"
$filter = new Laminas\I18n\Filter\Alpha();
$filter->setAllowWhiteSpace(true);

echo $filter->filter('This is (my) content: 123'); // "This is my content"
```

### Get Current Value

To get the current value of this option, use the `getAllowWhiteSpace()` method.

```php
$filter = new Laminas\I18n\Filter\Alpha(true);

$result = $filter->getAllowWhiteSpace(); // true
```

### Default Value

The default value of this option is `false` that means whitespace characters are
suppressed.

## Using Locale

The locale string used in identifying the characters to filter (locale name,
e.g. `en_US`).

```php fct_label="Constructor Usage"
$filter = new Laminas\I18n\Filter\Alpha(null, 'en_US');

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent"
```

```php fct_label="Setter Usage"
$filter = new Laminas\I18n\Filter\Alpha();
$filter->setLocale('en_US');

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent"
```

```php fct_label="Locale Class Usage"
Locale::setDefault('en_US');

$filter = new Laminas\I18n\Filter\Alpha();

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent"
```

### Get Current Value

To get the current value of this option, use the `getLocale()` method.

```php
$filter = new Laminas\I18n\Filter\Alpha(null, 'en_US');

echo $filter->getLocale(); // 'en_US'
```

### Default Value

By default, if no locale is provided, `Alpha` will use the system locale
provided by PHP's `Locale::getDefault()`.

## Supported languages

`Alpha` works for most languages, except *Korean*, *Japanese*, and *Chinese*.
Within these languages, the English alphabet is used instead of the characters
from these languages. The language itself is detected using PHP's `Locale`
class.
Loading