PHPackages                             ochen-studio/ochen-php-typograph - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ochen-studio/ochen-php-typograph

ActivePhp-typograph-component

ochen-studio/ochen-php-typograph
================================

Component lets tune Muravjev typograph and use it

1.0.0(yesterday)04↑2900%1BSD-3-ClausePHP &gt;=5.6

Since Jul 19Compare

[ Source](https://github.com/ochen-studio/ochen-php-typograph)[ Packagist](https://packagist.org/packages/ochen-studio/ochen-php-typograph)[ RSS](/packages/ochen-studio-ochen-php-typograph/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (1)

### Компонент типографа на ЯП PHP со встроенным конфигуратором

[](#компонент-типографа-на-яп-php-со-встроенным-конфигуратором)

Конфигуратор типографа настраивает правила типографа Муравьева.

Добавление или удаление третов в конфигураторе не реализовано. Если какой-либо трет нужно полностью исключть из типографирования, то можно отключить все его правила.

- **Трет** - это блок или модуль правил. Например: трет Symbol содержит правила обнаружения и обработки различных символов. ---
- **Правило** - это массив, состоящий из регулярок(-ки) обнаружения случая в тексте и регулярок(-ки), на которые соответственно необходимо заменить найденный случай в тексте.
    Также имеется (неоябзательная) ячейка в массиве с описанием сути правила. ---
- **Typograph composer-пакета ochen-studio/mdash** - это наследник *TypographBase*. В нем объявлены не все правила третов, которые доступны в классе *TypographBase*.
    В результате не все правила класса TypographBase можно подключить / отключить. Потому некоторые правила третов класса *TypographBase* прописаны
    в переменной *$additionalOptions* класса *TypographConfigurator* для их последующей настройки. ---
- Класс *Typograph* с пространством имен *Ochen\\PhpTypograph* наследуется от класса *Typograph* из composer-пакета *ochen-studio/mdash*, т. к. необходимо было добавить
    правила типографу, которые были доступны в классе *TypographBase*, но перестали быть доступны в классе *Typograph* из composer-пакета *ochen-studio/mdash*. ---

### Установка

[](#установка)

Чтобы установить компонент, нужно в composer.json добавить следующие строки:

```
"require": {
    "ochen/ochen-php-typograph": "^1.0.0",
}
```

Или набрать команду:

```
composer require ochen/ochen-php-typograph
```

### Работа конфигуратора

[](#работа-конфигуратора)

1. Объявление конфигуратора типографа. Настройка типографа с правилами, прописанными в конфигах и внутри самого конфигуратора по умолчанию

```
$configurator = new TypographConfigurator();
$configurator->configure();
```

2. Настройка типографа с правилами, переданными через конструктор конфигуратора

```
$configurator = new TypographConfigurator($additionalRules, $changedRules);
```

3. Пример объявления новых правил

```
$additionalRules = [
    [
        'selector' => 'Abbr',
        'ruleName' => 'nobr_vtch_BC',
        'params' => [
            'pattern' => '/(^|\s|\&nbsp\;|)([дД]о)?[ ](н)\.?[ ]?э\./ue',
            'replacement' => '$m[1] . $this->tag($m[2] . " н."." э.", "span", array("class" => "nowrap"))',
        ],
    ],
];
```

4. Пример объявления изменений правил

```
$changedRules = [
    [
        'selector' => 'Etc.time_interval',
        'keysOfRule' => [
            'pattern',
            'replacement',
        ],
        'valuesOfKeyRule' => [
            '/([\d]{1,2}\:[\d]{2})(-|\&mdash\;|\&minus\;)([\d]{1,2}\:[\d]{2})/eui',
            '$this->tag($m[1] . "&ndash;" . $m[3], "span", array("class" => "nowrap"))',
        ],
    ],
];
```

### Использование типографа

[](#использование-типографа)

1. Создание объекта типографа с пользовательскими настройками и обработка текста. В момент создания обекта класса *TypographFacade* внутри него создается
    конфигуратор типографа

```
$typograph = new TypographFacade();
$processedText = $typograph->process('до н. э.');
```

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity28

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dcffe61920f733d1fb64833d8ae28e644b3a310750f5a911986f68749cd2182c?d=identicon)[support@ochen.team](/maintainers/support@ochen.team)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ochen-studio-ochen-php-typograph/health.svg)

```
[![Health](https://phpackages.com/badges/ochen-studio-ochen-php-typograph/health.svg)](https://phpackages.com/packages/ochen-studio-ochen-php-typograph)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
