Как подключить библиотеку 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
177 +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 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир