Как подключить библиотеку phpMorphy в класс? Работаю с библиотекой PhpMorhpy. К ней прилагается следующий пример инициализации:require_once(dirname(__FILE__) . '/../src/common.php');
// set some options
$opts = array(
// storage type, follow types supported
// PHPMORPHY_STORAGE_FILE - use file operations(fread, fseek) for dictionary access, this is very slow...
// PHPMORPHY_STORAGE_SHM - load dictionary in shared memory(using shmop php extension), this is preferred mode
// PHPMORPHY_STORAGE_MEM - load dict to memory each time when phpMorphy intialized, this useful when shmop ext. not activated. Speed same as for PHPMORPHY_STORAGE_SHM type
'storage' => PHPMORPHY_STORAGE_FILE,
// Extend graminfo for getAllFormsWithGramInfo method call
'with_gramtab' => false,
// Enable prediction by suffix
'predict_by_suffix' => true,
// Enable prediction by prefix
'predict_by_db' => true
);
// Path to directory where dictionaries located
$dir = dirname(__FILE__) . '/phpmorphy-0.3.7/dicts';
// Create descriptor for dictionary located in $dir directory with russian language
$dict_bundle = new phpMorphy_FilesBundle($dir, 'rus');
// Create phpMorphy instance
try {
$morphy = new phpMorphy($dict_bundle, $opts);
} catch(phpMorphy_Exception $e) {
die('Error occured while creating phpMorphy instance: ' . $e->getMessage());
}
Я пишу свой класс, который работает с PhpMorphy. Ранее данную инициализацию я проводила в начале каждой функции класса. Понимаю, что это не правильно, поэтому хочу оптимизировать работу кода. Как правильно инициализировать phpMorphy внутри класса?
Спасибо за помощь!

21 Авг 2019 в 07:03
147 +1
0
Ответы
1

Для того чтобы правильно инициализировать phpMorphy внутри вашего класса, вы можете создать конструктор, который будет инициализировать phpMorphy при создании объекта класса. Вот пример того, как это можно сделать:

require_once(dirname(__FILE__) . '/../src/common.php');
class YourClass {
private $morphy;
public function __construct() {
$opts = array(
'storage' => PHPMORPHY_STORAGE_FILE,
'with_gramtab' => false,
'predict_by_suffix' => true,
'predict_by_db' => true
);
$dir = dirname(__FILE__) . '/phpmorphy-0.3.7/dicts';
$dict_bundle = new phpMorphy_FilesBundle($dir, 'rus');
try {
$this->morphy = new phpMorphy($dict_bundle, $opts);
} catch(phpMorphy_Exception $e) {
die('Error occured while creating phpMorphy instance: ' . $e->getMessage());
}
}
// Дальше опишите остальные методы вашего класса
}

Теперь при создании объекта вашего класса, phpMorphy будет инициализироваться автоматически. В дальнейшем вы сможете использовать $this->morphy внутри вашего класса для работы с библиотекой phpMorphy.

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 852 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир