boshurik/twig-petrovich-extension

Twig Petrovich extension

Maintainers

👁 BoShurik

Package info

github.com/BoShurik/twig-petrovich-extension

pkg:composer/boshurik/twig-petrovich-extension

Statistics

Installs: 828

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.0 2020-06-17 16:58 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT a359340d6052b2257adea3a1b1e277c7222a86ab

  • BoShurik <boshurik.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-25 23:59:21 UTC


README

👁 Petrovich

Installation

composer req boshurik/twig-petrovich-extension
use Staticall\Petrovich\Petrovich;
use Staticall\Petrovich\Petrovich\Loader;
use BoShurik\Petrovich\Twig\Extension\PetrovichExtension;
use Twig\Environment;

$petrovich = new Petrovich(Loader::load('/path/to/rules.json'));
$extension = new PetrovichExtension($petrovich);
$twig = new Environment($loader);
$twig->addExtension($extension);

You can use callable to lazy loading Petrovich instance

use Staticall\Petrovich\Petrovich;
use Staticall\Petrovich\Petrovich\Loader;
use BoShurik\Petrovich\Twig\Extension\PetrovichExtension;

$factory = function () {
 return new Petrovich(Loader::load('/path/to/rules.json'));
};
$extension = new PetrovichExtension($factory);

Usage

{{ 'Тестов Тест Тестович' | inflect_full_name('genitive', 'male') }}
{{ 'Тестов Тест Тестович' | inflect_full_name('dative') }}
{{ 'Тестов Тест Тестович' | inflect_full_name_accusative }}
{{ 'Тестов Тест Тестович' | inflect_full_name_instrumental_male }}

{{ inflect_full_name('Тестов Тест Тестович', 'genitive', 'male') }}
{{ inflect_full_name('Тестов Тест Тестович', 'dative') }}
{{ inflect_full_name_accusative('Тестов Тест Тестович') }}
{{ inflect_full_name_instrumental_male('Тестов Тест Тестович') }}