Download the PHP package morpher/ws3-client without Composer

On this page you can find all versions of the php package morpher/ws3-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package ws3-client

PHP-клиент веб-сервиса ws3.morpher.ru

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

История изменений:

Библиотека реализует следующие функции (с помощью веб-сервиса "Морфер 3.0"):

На русском языке:

На украинском языке:

На казахском языке:

Общие:

Веб-сервис "Морфер 3.0" предусматривает бесплатное (с ограничениями) и платное использование. Подробнее смотрите на сайте проекта.

Требования к системе

Установка

Если в вашем проекте отсутствует файл composer.json, то необходимо выполнить:

$ composer init

И ответить на вопросы программы (название проекта и т.д.). Обратите внимание на параметр minimum-stability - он должен быть не выше чем указано в той версии пакета morpher, которую вы будете устанавливать в свой проект. Если не получилось установить пакет, попробуйте задать в файле composer.json : "minimum-stability": "dev".

Файл composer.json и папка vendor будут созданы.
Выполните команду:

$  composer require morpher/ws3-client  

Использование

<?php  
require_once __DIR__."/vendor/autoload.php";  
use Morpher\Ws3Client\Morpher;  
$base_url = 'https://ws3.morpher.ru';  
$token = "";  
$morpher = new Morpher($base_url, $token);  
$declensionResult = $morpher->russian->Parse('трамвай');
print_r($declensionResult);

Где $token=""; в кавычках укажите токен, который получили при регистрации на сайте https://morpher.ru.
Если токен пустой, сервис будет работать с ограничениями бесплатной версии.
Можно вызвать конструктор без аргументов, в этом случае будут использоваться параметры по умолчанию.

Склонение по падежам на русском языке

Метод $morpher->russian->Parse($lemma,$flags) решает задачу склонения слова или словосочетания по падежам;

Входные параметры

  1. Строка – слово или фраза на русском языке.
  2. Массив флагов (необязательный параметр). Флаги принимают значения констант из класса Morpher\Ws3Client\Russian\Flags.

Пример:

$declensionResult = $morpher->russian->Parse('фраза на русском');  

$declensionResult — объект Morpher\Ws3Client\Russian\DeclensionResult со следующими свойствами:

При использовании платного аккаунта на сервисе определяются дополнительные свойства:

Флаги для разрешения неоднозначностей

Есть слова, которые могут склоняться по-разному, например:

Для повышения качества склонения вы можете сообщить веб-сервису дополнительную информацию через флаги. Флаги принимают значения констант из класса Morpher\Ws3Client\Russian\Flags. Флаги нужно передавать в массиве:

use Morpher\Ws3Client\Russian\Flags;  
$morpher->russian->Parse('Резник', [Flags::Name, Flags::Masculine]);  

Флаги для $morpher->russian->Parse:

Выделение в строке фамилии, имени и отчества

Если входная строка распознана как ФИО, то объект $declensionResult->FullName будет содержать разбивку строки на фамилию, имя и отчество:

Пропись чисел и согласование с числом

Метод $morpher->russian->Spell($number, $unit) решает задачу получения прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующим числом (1 попугай, 2 попугая, 5 попугаев).

Входные параметры:

Метод возвращает объект Morpher\Ws3Client\Russian\NumberSpellingResult,
содержащий свойства NumberDeclension и UnitDeclension. Оба свойства содержат склонения по всем падежам:

$numberSpellingResult=$morpher->russian->Spell(235, 'рубль');  
print $numberSpellingResult->NumberDeclension->Dative; // двумстам тридцати пяти  
print $numberSpellingResult->UnitDeclension->Dative; // рублям  

Пропись чисел в виде порядковых числительных

Метод $morpher->russian->SpellOrdinal($number, $unit) решает задачу прописи числа в форме порядкового числительного.

Входные параметры:

Метод возвращает объект Morpher\Ws3Client\Russian\NumberSpellingResult. Пример:

$numberSpellingResult =$morpher->russian->SpellOrdinal(5, 'колесо');  
print $numberSpellingResult->NumberDeclension->Dative; //пятому  
print $numberSpellingResult->UnitDeclension->Dative; //колесу  

Пропись дат

Метод $morpher->russian->SpellDate($date) решает задачу прописи даты и склонения по падежам. Дата может быть передана:

Метод возвращает объект Morpher\Ws3Client\Russian\DateSpellingResult. Пример:

$dateSpellingResult = $morpher->russian->SpellDate('2019-06-29');  
print $dateSpellingResult->Genitive;  // двадцать девятого июня две тысячи девятнадцатого года  
print $dateSpellingResult->Dative; // двадцать девятому июня две тысячи девятнадцатого года  
print $dateSpellingResult->Instrumental; // двадцать девятым июня две тысячи девятнадцатого года

Склонение прилагательных по родам

Метод $morpher->russian->AdjectiveGenders($adjective) склоняет данное ему прилагательное, преобразуя его из мужского рода в женский, средний и во множественное число.

Входной параметр – строка, прилагательное. Требования к входному прилагательному:

Метод возвращает объект Morpher\Ws3Client\Russian\AdjectiveGenders:

$adjectiveGenders =$morpher->russian->AdjectiveGenders('уважаемый');  

print $adjectiveGenders->Feminine;      // уважаемая  
print $adjectiveGenders->Neuter;        // уважаемое  
print $adjectiveGenders->Plural;        // уважаемые  

Образование прилагательных

Метод $morpher->russian->Adjectivize($lemma) образует прилагательные от названий городов и стран: Москва – московский, Ростов – ростовский, Швеция – шведский, Греция – греческий. Входной параметр – строка. Метод возвращает массив строк. Что они означают, описано здесь.
Пример:

$adjectives=$morpher->russian->Adjectivize('Москва');  
print   $adjectives[0]; // московский  

Расстановка ударений в текстах

Метод $morpher->russian->addStressMarks($text) расставляет ударения в текстах на русском языке. Входной параметр – строка. Метод возвращает строку аналогичную входной, но дополненную символами ударения и точками над Ё. Строки могут быть большой длины.

$result=$morpher->russian->addStressMarks('Три девицы под окном');  
print $result; // Три деви́цы под окно́м  

Ударение отмечается символом с кодом U+0301, который вставляется сразу после ударной гласной. Односложные слова не получают знака ударения, за исключением случаев, когда предлог или частица несет на себе ударение: за́ руку, не́ за что. Варианты прочтения разделяются вертикальной чертой, например:

$result=$morpher->russian->addStressMarks('Белки питаются белками');  
print $result; // Бе́лки|Белки́ пита́ются бе́лками|белка́ми  

Склонение по падежам на украинском языке

Украинский вариант склонения — метод $morpher->ukrainian->Parse($lemma, $flags).

Входные параметры:

  1. Строка, содержащая слово или фразу на украинском языке.
  2. Массив флагов (необязательный), принимающих значения констант из класса Morpher\Ws3Client\Ukrainian\Flag.

Метод возвращает объект Morpher\Ws3Client\Ukrainian\DeclensionResult:

$declensionResult=$morpher->ukrainian->Parse('Крутько Катерина Володимирiвна');  

print $declensionResult->Genitive; // Крутько Катерини Володимирівни  
print $declensionResult->Dative;   // Крутько Катерині Володимирівні  
print $declensionResult->Vocative; // Крутько Катерино Володимирівно  

Объект Morpher\Ws3Client\Ukrainian\DeclensionResult имеет следующие свойства:

При платном доступе возвращаются дополнительные свойства:

Флаги для разрешения неоднозначностей

Пример:

use  Morpher\Ws3Client\Ukrainian\Flags;
$declensionResult=$morpher->ukrainian->Parse('Карен', [Flags::Feminine]);  
print $declensionResult->Genitive; // Карен (женское имя не склоняется)  

Флаги, поддерживаемые функцией $morpher->ukrainian->Parse($lemma, $flags):

Пропись чисел и согласование с числом на украинском языке

Метод $morpher->ukrainian->Spell($number, $unit) решает задачу получения прописи числа (одна тисяча сто двадцять п'ять) и согласование единицы измерения с предшествующим числом (один рубль, два рубля, п'ять рублів).

Входные параметры:

Метод возвращает объект Morpher\Ws3Client\Ukrainian\NumberSpellingResult,
содержащий свойства NumberDeclension и UnitDeclension. Оба свойства содержат склонения по всем падежам:

$spellingResult=$morpher->ukrainian->Spell(235, 'рубль');  
print $spellingResult->NumberDeclension->Genitive; // двохсот тридцяти п'яти  
print $spellingResult->UnitDeclension->Genitive;   // рублів  

Склонение по падежам, числам и лицам на казахском языке

Для склонения слов и словосочетаний используется метод $morpher->qazaq->Parse($phrase).
Входной параметр – срока, слово или фраза на казахском языке. Метод возвращает объект Morpher\Ws3Client\Qazaq\DeclensionResult.

Пример:

$declensionResult=$morpher->qazaq->Parse('бала');
print_r($declensionResult);

Объект имеет сложную структуру.

Этот объект содержит 7 падежей, а также 8 лицевых форм склонений единственного числа, и каждая в себе содержит 7 падежей.

$declensionResult->Genitive  
$declensionResult->FirstPerson->Genitive  
$declensionResult->SecondPerson->Accusative  
…  
$declensionResult->ThirdPersonPlural->Dative  

А также содержит объект Plural, в котором 7 падежей множественного числа, и ещё 8 личных форм склонений множественного числа, каждая себе содержит 7 падежей:

$declensionResult->Plural->Locative  
$declensionResult->Plural->FirstPerson->Locative  
$declensionResult->Plural->SecondPerson->Nominative  
…  
$declensionResult->Plural->ThirdPersonPlural->Dative  

Пример:

$declensionResult = $morpher->qazaq->Parse('менеджер');  

print $declensionResult->Genitive;      // менеджердің  
print $declensionResult->Plural->Genitive;  // менеджерлердің  
print $declensionResult->Plural->FirstPerson->Genitive; // менеджерлеріміздің  

Свойства объекта Morpher\Ws3Client\Qazaq\DeclensionResult:

Свойства-падежи ед. числа:

Свойства – личные формы ед. числа (в каждой свои падежи):

Свойство множественного числа:

Метод $morpher->getQueriesLeftForToday() возвращает остаток запросов на данный момент. Лимит на запросы восстанавливается в 00:00 UTC.

print  $morpher->getQueriesLeftForToday(); // 939    

Пользовательский словарь

Веб-сервис поддерживает исправление склонения по требованию пользователя. Для этого имеются 3 метода:

Получить список исправлений

Для того чтобы получить список всех исправлений, нужно использовать методы:

$rus=$morpher->russian->userDict->GetAll();   // Morpher\Ws3Client\Russian\СorrectionEntry  
$ukr=$morpher->ukrainian->userDict->GetAll(); // Morpher\Ws3Client\Ukrainian\СorrectionEntry  

Метод возвращает массив объектов CorrectionEntry в пространстве имён соответствующего языку (русскому, украинскому).

Для русского языка:

Объект Morpher\Ws3Client\Russian\СorrectionEntry со следующими свойствами:

Указание рода не поддерживается.

Объект Morpher\Ws3Client\Russian\CorrectionForms со следующими свойствами:

Для украинского языка:

Объект Morpher\Ws3Client\Ukrainian\СorrectionEntry со следующими свойствами:

Указание рода не поддерживается.

Объект Morpher\Ws3Client\Ukrainian\CorrectionForms со следующими свойствами:

Добавить или изменить исправление

Для добавления или изменения исправления использовать метод $morpher->russian->userDict->AddOrUpdate($entry),
или аналогично
$morpher->ukrainian->userDict->AddOrUpdate($entry):

$correctionEntry=new \Morpher\Ws3Client\Russian\CorrectionEntry();  
$correctionEntry->Singular->Nominative="чебуратор";  
$correctionEntry->Singular->Locative='в чебураторке';  
$correctionEntry->Plural->Locative='в чебураториях';  
$morpher->russian->userDict->AddOrUpdate($correctionEntry);  

Удаление исправления

Для того чтобы удалить исправление, достаточно передать строку в именительном падеже в метод

$morpher->russian->userDict->Remove($nominativeForm);     

или аналогично

$morpher->ukrainian->userDict->Remove($nominativeForm);  

Пример:

$morpher->russian->userDict->Remove('чебуратор');  

Обработка ошибок

При вызове функций веб-сервиса могут возникать ошибки, например, сбой связи или недопустимое значение аргумента.

Библиотека сигнализирует об ошибках, выбрасывая исключения.

Исключения, которые может выбросить любая функция веб-сервиса, объединены в иерархию, в корне которой находится класс SystemError:

Кроме того, каждая функция может выбрасывать свои исключения, перечисленные в ее PHP-Doc.

Разработка

Этот раздел для тех, кто хочет помочь с разработкой данной библиотеки.

Сделайте форк репозитория morpher-ws3-php-client.
Затем выполните:

$ git clone https://github.com/<your-github-username>/morpher-ws3-php-client  
$ cd morpher-ws3-php-client  
$ composer install

Должна появиться папка vendor.

Запуск тестов

Запуск юнит теста:

$ vendor\bin\phpunit tests\unit  

Для запуска интеграционных тестов задать секретный токен, иначе тесты частично будут выполнены с ошибкой. Есть два способа задать токен:

1) Подходит для локального запуска. Создать файл tests/integration/secret.php , в котором объявить константу:

    <?php  
    DEFINE("MORPHER_RU_TOKEN", "xxxxx-xxxxxx-xxxxxxx");

2) Подходит для запуска в контейнере GitHub Actions. В GitHub Actions, в разделе Secrets, создать переменную окружения MORPHER_RU_TOKEN, и сохранить токен в неё.

Запуск интеграционного теста:

$ vendor\bin\phpunit tests\integration  

Обновление зависимостей

$ composer update  

Обновление автозагрузки классов composer autoload (после каждого создания нового php файла в проекте)

$ composer dump-autoload -o  

Выпуск нового релиза

См. также


All versions of ws3-client with dependencies

PHP Build Version
Package Version
Requires php Version >=7.4
ext-json Version *
ext-ctype Version *
guzzlehttp/guzzle Version ^7.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package morpher/ws3-client contains the following files

Loading the files please wait ....