Всем мира, ребята подскажите библиотеку для php что бы можно было склонять не только одно слово, а целые фразы, пример:
Главный начальник производственного цеха
нужно что бы получилось:
Услуги Главного начальника производственного цеха
учитывая что профессии могут быть самые разные
спасибо
Библиотека для склонения в php
Я не знаю но мне стало интересно тоже и вот что накопал.
Для склонения слов и целых фраз в PHP есть несколько отличных решений:
1. Морфер (Morpher.ru) — API сервис
Это оптимальный выбор именно для целых фраз и профессий. Поддерживает склонение сложных словосочетаний.
$client = new \Morpher\Ws3Client\Client('YOUR_TOKEN'); $result = $client->russian->declension('Главный начальник производственного цеха'); echo 'Услуги ' . $result->genitive; // Родительный падеж
2. NameCaseLib
Библиотека для склонения ФИО, но можно адаптировать для профессий:
require_once 'namecaselib/NCLNameCaseRu.php'; $nc = new NCLNameCaseRu(); $nc->setFirstName('Главный'); $nc->setLastName('начальник'); echo $nc->getGenitive();
3. Petrovich
Хорошо подходит для склонения имен и должностей:
use Petrovich\Petrovich; $petrovich = new Petrovich(); $result = $petrovich->firstname('Главный', Petrovich::CASE_GENITIVE);
4. phpMorphy
Морфологический анализатор, работает оффлайн:
$morphy = new phpMorphy(/* config */); $words = ['Главный', 'начальник', 'производственного', 'цеха']; foreach ($words as $word) { $result = $morphy->castFormByGramInfo($word, null, ['РОД'], true); }
Рекомендации:
Для сложных фраз и профессий лучше всего Морфер через API — он специально заточен под склонение целых словосочетаний
Для оффлайн решений можно комбинировать phpMorphy с собственной логикой
Обязательно кешируйте результаты склонений, чтобы не перегружать API
Однозначно Morpher.ru — мощнее и солиднее не встречал еще.
Ну мне для тестов, а Morpher.ru платный, межет что ещё?
Morpher.ru платный
Ого, реально платным стал… Раньше давно был бесплатен. Тогда попробуйте как вариант — https://github.com/sheronov/Php-MyStem