{"id":15063315,"url":"https://github.com/bubnov-mikhail/twig-declension-bundle","last_synced_at":"2026-01-03T11:09:58.032Z","repository":{"id":62497899,"uuid":"68810383","full_name":"bubnov-mikhail/twig-declension-bundle","owner":"bubnov-mikhail","description":null,"archived":false,"fork":false,"pushed_at":"2016-11-09T14:59:36.000Z","size":25,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T06:12:55.243Z","etag":null,"topics":["declensions","symfony-bundle","twig","twig-extension"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bubnov-mikhail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-21T11:29:55.000Z","updated_at":"2017-08-30T13:12:58.000Z","dependencies_parsed_at":"2022-11-02T10:00:35.588Z","dependency_job_id":null,"html_url":"https://github.com/bubnov-mikhail/twig-declension-bundle","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bubnov-mikhail%2Ftwig-declension-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bubnov-mikhail%2Ftwig-declension-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bubnov-mikhail%2Ftwig-declension-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bubnov-mikhail%2Ftwig-declension-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bubnov-mikhail","download_url":"https://codeload.github.com/bubnov-mikhail/twig-declension-bundle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243754092,"owners_count":20342542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["declensions","symfony-bundle","twig","twig-extension"],"created_at":"2024-09-24T23:54:54.028Z","updated_at":"2026-01-03T11:09:57.987Z","avatar_url":"https://github.com/bubnov-mikhail.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# twig-declension\n\nФильтр для twig\n\n* Позволяет управлять списком склоняемых слов и множественных форм\n* Подключается как расширение к шаблонизатору twig\n* Применяется к строке как фильтр в шаблоне\n* Находит склоняемое слово в предварительно наполненной таблице и возвращает требуемую форму\n* В случае отсутствия соответствующей записи в БД или при пустом склонении возвращает исходную строку или именительный падеж\n* Использует standalone библиотеку phpMophy (http://phpmorphy.sourceforge.net/dokuwiki/)\n\n1) Установка\n----------------------------------\n\n    Выполнить:\n    ```sh\n    composer require bubnov/twig-declension-bundle: ~3.0\n    ```\n\n    Добавить бандл в конфигурацию AppKernel\n    ```php\n    // app/AppKernel.php\n    public function registerBundles()\n    {\n        return array(\n            // ...\n            new Bubnov\\TwigDeclensionBundle\\BubnovTwigDeclensionBundle(),\n            // ...\n        );\n    }\n    ```\n\n    Обновить базу данных\n    ```sh\n    bin/console doctrine:schema:update\n    ```\n\n    или\n\n    ```sh\n    bin/console doctrine:migrations:diff\n    bin/console doctrine:migrations:migrate\n    ```\n\n    Настроить routing.yml\n    ```yml\n    # app/routing.yml\n    bubnov-twig-declension-bundle:\n        resource: \"@BubnovTwigDeclensionBundle/Resources/config/routing/routing.yml\"\n    ```\n\n    Тонкая настройка\n    ```yml\n    # app/config.yml\n    bubnov_twig_declension:\n        pre_cache: false #(true по умолчанию) - загрузка сразу всех слов в словаре одним запросом к БД при первом обращении\n        auto_create: false #(true по умолчанию) - автоматическое создание форм слов, запрашиваемых в twig\n\n\n2) Использование\n-------------------------------------\n    Добавить ссылку в административной панели или меню\n    ```twig\n    {# Ваш шаблон меню/панели #}\n    \u003ca href=\"{{ path('admin_twig_declension') }}\"\u003eСлонения\u003c/a\u003e\n    ```\n\n    ** Внимание! В контроллере используется контроль доступа. Пользователь должен обладать ролью ROLE_ADMIN непосредственно, либо по иерархии ролей (см. security.role_hierarchy)\n\n    Создать необходимые записи в административном интерфейсе\n    В данном примере мы создали запись \"яблоко\" и заполнили все падежи и множественные формы\n\n    Склонение:\n    ```twig\n    {# Ваш шаблон #}\n    Ньютон получил по голове {{ 'яблоко' | declension('abl') }}\n    {# Получится 'Ньютон получил по голове  яблоком' #}\n    ```\n\n    Множественное число:\n    ```twig\n    {# Ваш шаблон #}\n    В ящике лежат {{ 'яблоко' | declension('inf_multi') }}\n    {# Получится 'В ящике лежат яблоки' #}\n    ```\n\n    Множественные формы:\n    ```twig\n    {# Ваш шаблон #}\n    У меня в кармане 12 {{ 'яблоко' | declension('plural', 12) }}\n    {# Получится 'У меня в кармане 12 яблок' #}\n    ```\n\n3) Список ключей и падежей\n-------------------------------------\n    * inf         - именительный падеж\n    * inf_multi   - именительный падеж множественного числа\n    * gen         - родительный падеж\n    * gen_multi   - родительный падеж множественного числа\n    * dat         - дательный падеж\n    * acc         - винительный падеж\n    * abl         - творительный падеж\n    * pre         - предложный падеж\n    * plural      - множественные формы\n\n\n4) Автоматическое заполнение форм слова\n-------------------------------------\n    На странице добавления/обновления записи можно настроить автоматическое заполнение форм слова.\n\n    Для генерации url к контроллеру используется FOS\\JsRoutingBundle\n    Подключите его в app/AppKernel.php (скорее всего он там уже есть)\n    ```php\n    // app/AppKernel.php\n    public function registerBundles()\n    {\n        return array(\n            // ...\n            new FOS\\JsRoutingBundle\\FOSJsRoutingBundle(),\n            // ...\n        );\n    }\n    ```\n\n    Подключите в html js-ассет 'bundles/fosjsrouting/js/router.js' и 'bundles/bubnovtwigdeclension/js/auto-declension.js'\n    ```html\n    \u003cscript type=\"text/javascript\" src=\"{{ asset('bundles/fosjsrouting/js/router.js') }}\u003e\u003c/script\u003e\n    \u003cscript type=\"text/javascript\" src=\"{{ asset('bundles/bubnovtwigdeclension/js/auto-declension.js') }}\u003e\u003c/script\u003e\n    ```\n\n    или\n\n    ```html\n    {% javascripts\n        ...\n        'bundles/fosjsrouting/js/router.js'\n        'bundles/bubnovtwigdeclension/js/auto-declension.js'\n        ...\n        output='compiled/compiled.js'\n    %}\n    \u003cscript type=\"text/javascript\" src=\"{{ asset_url }}\"\u003e\u003c/script\u003e\n    {% endjavascripts %}\n    ```\n\n    Установите ассеты из бандла\n    ```sh\n    app/console assets:install\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbubnov-mikhail%2Ftwig-declension-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbubnov-mikhail%2Ftwig-declension-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbubnov-mikhail%2Ftwig-declension-bundle/lists"}