chulakov / yii2-typograph
Typograph component for Yii2
Installs: 141
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Type:typograph-component
Requires
- php: >=7.1.0
- chulakov/ch-php-typograph: ^1.0
- oleg-chulakov-studio/yii2-base: ^1.0
This package is auto-updated.
Last update: 2024-11-04 11:24:11 UTC
README
Компонент типографа для Yii2
Пакет позволяет встроить типограф в Yii2-фреймворк. Пакет состоит из поведения и компонента типографа.
Установка
Чтобы установить пакет, нужно в composer.json добавить следующие строки:
"require": { "chulakov/yii2-typograph": "^1.0.0", }
Или набрать команду:
composer require chulakov/yii2-typograph
Способ подключения компонента
В файле common/config/main добавляется компонент. Компонент должен реализовывать интерфейс TypografInterface из пакета chulakov/ch-php-typograph:
return [ 'components' => [ ... 'typograph' => [ 'class' => 'Chulakov\Typograph\TypographComponent', ], ] ];
В компоненте указан класс типографа по умолчанию TypographFacade
Есть возможность переопределить правила типографа внутри компонента. Для этого в свойства компонента additionalRulesPath и changedRulesPath кладутся пути файлов с новыми правилами типографа и/или с изменениями старых правил. Приведены примерные пути файлов.
Замечание 1: новые правила - правила, которые необходимо добавить к старым
Замечание 2: пример задания конфигурации правил или их изменений (пункт 3-4)
return [ 'components' => [ ... 'typograph' => [ 'class' => 'Chulakov\Typograph\TypographComponent', 'additionalRulesPath' => '@common/components/typograph/config/additionalRules.php', 'changedRulesPath' => '@common/components/typograph/config/changedRules.php', ], ] ];
В компоненте TypographComponent реализована функция process, которая типографирует текст:
$typographComponent->process('до н. э.');
Способ подключения поведения
Поведение можно прикреплять к форме и указывать поля, значение которых необходимо типографировть
public function behaviors() { return [ [ 'class' => TypographBehaviour::class, 'attributes' => ['title'] ], ]; }
Если поле формы составное, например, если поле является MultipleInput объектом, то его следует задавать в виде массива:
public function behaviors() { return [ [ 'class' => TypographerBehaviour::class, 'attributes' => [ 'items' => [ 'properties' => ['title', 'description'] ] ] ], ]; }
Необходимо, чтобы в конструктор поведения прокидывалась реализация интерфейса TypografInterface
В Yii2 есть способ передачи компонента типографа, реализующего интерфейс TypografInterface, через внедрение зависимостей
Такое можно осуществить, прописав в реализации интерфейса BootstrapInterface код:
\Yii::$container->setSingleton('Chulakov\PhpTypograph\TypografInterface', function() use ($app) { return $app->get('typograph'); });