Здравствуй, Хабрахабр!
Сегодня я расскажу о небольшом, но очень полезном фреймворке — NameCaseLib.
Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».
Для работы NameCaseLib нам понадобится PHP5 и библиотека php_mbstring, для работы с текстом в формате UTF-8.
Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.
NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.
Итак, давайте создадим файл в формате .php, и проверим работоспособность данного фреймворка.
Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.
Но, давайте все-таки разберем, какие параметры содержит в себе метод q, и как его еще можно использовать?
Данный метод имеет 3 параметра, 2 из них — можно не указывать. Первый параметр — ФИО человека, второй — падеж (Список констант приведу ниже; в случае, если не указан падеж (NULL), то метод возвращает все падежи), и третий — пол человека. (Константы, также, приведены ниже; если не указать пол (NULL), метод определит его сам)
Для указания пола используются константы:
Для указания падежей русского языка:
Для указания падежей украинского языка:
С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.
Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?
Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.
NameCaseLib — действительно удобный фреймворк, который включает в себя много полезных функций. На сайте имеется полная документация на русском языке.
Проект на github.
Официальный сайт.
Сегодня я расскажу о небольшом, но очень полезном фреймворке — NameCaseLib.
Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».
Установка
Для работы NameCaseLib нам понадобится PHP5 и библиотека php_mbstring, для работы с текстом в формате UTF-8.
Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.
NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.
Итак, давайте создадим файл в формате .php, и проверим работоспособность данного фреймворка.
<?
# Указываем кодировку.
header('Content-type: text/html; charset=utf-8');
# Подключаем русские правила склонения.
require 'NCL.NameCase.ru.php';
# Объявляем объект класса.
$case = new NCLNameCaseRu();
# Метод q - склоняет Фамилию, Имя и Отчество человека по правилам пола.
$array = $case->q("Максимов Александр Васильевич");
# Выводим получившийся массив. (Примечание: возвращает простой индексируемый массив)
var_dump($array);
?>
Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.
Но, давайте все-таки разберем, какие параметры содержит в себе метод q, и как его еще можно использовать?
Данный метод имеет 3 параметра, 2 из них — можно не указывать. Первый параметр — ФИО человека, второй — падеж (Список констант приведу ниже; в случае, если не указан падеж (NULL), то метод возвращает все падежи), и третий — пол человека. (Константы, также, приведены ниже; если не указать пол (NULL), метод определит его сам)
Константы
Для указания пола используются константы:
- NCL::$MAN – мужской пол
- NCL::$WOMAN – женский пол
Для указания падежей русского языка:
- NCL::$IMENITLN — именительный падеж
- NCL::$RODITLN — родительный падеж
- NCL::$DATELN — дательный падеж
- NCL::$VINITELN — винительный падеж
- NCL::$TVORITELN — творительный падеж
- NCL::$PREDLOGN — предложный падеж
Для указания падежей украинского языка:
- NCL::$UaNazyvnyi – називний відмінок
- NCL::$UaRodovyi – родовий відмінок
- NCL::$UaDavalnyi – давальний відмінок
- NCL::$UaZnahidnyi – знахідний відмінок
- NCL::$UaOrudnyi – орудний відмінок
- NCL::$UaMiszevyi – місцевий відмінок
- NCL::$UaKlychnyi – кличний відмінок
Примечания
- Порядок расположения ФИО не имеет значения.
- Не имеет значение, в каком регистре указаны ФИО, после склонения, метод возвращает сохраненный регистр букв.
Определение части ФИО
С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.
<?
# Указываем кодировку.
header('Content-type: text/html; charset=utf-8');
# Подключаем русские правила склонения.
require 'NCL.NameCase.ru.php';
# Объявляем объект класса.
$case = new NCLNameCaseRu();
# Метод getFullNameFormat — разбивает строку и возвращает формат, в котором записано имя.
$fullName = $case->getFullNameFormat("Максимов Александр Васильевич");
/* Мы получаем формат вида: S F N, где:
- S - Фамилия
- N - Имя
- F - Отчество
*/
echo $fullName;
?>
Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?
Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.
<?
# Указываем кодировку.
header('Content-type: text/html; charset=utf-8');
# Подключаем русские правила склонения.
require 'NCL.NameCase.ru.php';
# Объявляем объект класса.
$case = new NCLNameCaseRu();
# Параметры метода: qFullName(Фамилия, Имя, Отчество, пол, падеж, формат); Все параметры являются необязательными, если, например, не указать пол — система сама определит его.
echo $nc->qFullName("Максимов", "Александр", "Васильевич", NCL::$MAN, NCL::$TVORITELN, "S N F")."\n";
?>
Итоги
NameCaseLib — действительно удобный фреймворк, который включает в себя много полезных функций. На сайте имеется полная документация на русском языке.
Проект на github.
Официальный сайт.